这道题很简单,就不做过多的解释,只需要创建一个哈希表统计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中出现的次数。