这道题很简单,就不做过多的解释,只需要创建一个哈希表统计s中出现的次数,然后遍历t,如果没找到,或者找到了但是次数为0则返回错误,否则返回true。代码如下:
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.length()!=t.length()){
return false;
}
unordered_map<char,int>count;
for(char c:s){
count[c]++;
}
for(char c:t){
if(count.find(c)==count.end()||count[c]==0){
return false;
}
count[c]--;
}
return true;
}
};
这里面那个count[c]==0,表示虽然找到了,但是超过了使用次数。可能有些人不太动这两个for(char c:s)的含义,第一个主要是统计s中字符的个数,第二个主要是为了验证字符在t中出现的次数。