给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母,字符串等长。
题目分析:
根据题目的意思,字母异位词是指由相同的字母按照不同的顺序组成的单词,根据此含义,那么这两个单词的长度也一定相等,所以我们就可以先将两个单词按照字母的大小进行排序,然后比较两个单词对应位置上的字母是否相等。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
bool isAnagram(string a, string b) {
if (a.size() != b.size())return false;
sort(a.begin(), a.end());
sort(b.begin(), b.end());
for (int i = 0; i < a.size(); i++) {
if (a[i] != b[i])return false;
}
return true;
}
int main() {
string a, b;
cin >> a >> b;
if (isAnagram(a, b)) {
cout << "isAnagram" << endl;
}
return 0;
}