思路:
可以用hash_map存放一个string的元素并计数有几个,再遍历另一个string,查看hash_map有没有并且遍历到的这个字母的数量还有没有大于0,这样就能判断有没有相同和不同的字符并且数量相不相同了。
代码:
class Solution {
public:
bool isAnagram(string s, string t) {
unordered_map<char,int> mp;
int n=s.length();
int n1=t.length();
if(n!=n1) return false;
for(auto& w:s){
mp[w]++;
}
for(auto& w:t){
if(mp.count(w)&&mp[w]>0){
mp[w]--;
n--;
}
else return false;
}
return true;
}
};
另一种通过排序然后比较是否相等
class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(),s.end());
sort(t.begin(),t.end());
return s==t;
}
};