描述
给出两个字符串,判断这两个字符串是不是由相同数目的相同字符构成的
解决
方法一
利用sort排序,然后再判断两个字符串是否相等。
class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
return s == t;
}
};
方法二
用一个辅助数组存字符在字符串中出现的次数,最后判断这个统计数组是否存在非0值
class Solution {
public:
bool isAnagram(string s, string t) {
int n = s.length();
unordered_map<char, int> counts;
for (int i = 0; i < n; i++) {
counts[s[i]]++;
counts[t[i]]--;
}
for (auto count : counts)
if (count.second){
return false;
}
return true;
}
};