复习了一下哈希
哈希最重要的作用就是判断元素是否出现在一个集合中
class Solution {
public:
bool isAnagram(string s, string t) {
int arry[26]={0}; //只有26个英文字母,所以数组大小为26
for(int i=0;i<s.size();i++){
arry[s[i]-'a']++; //没必要记住每个英文字母的ASCII码,只要找到对应值就行,这也是哈希的思想。
}
for(int i=0;i<t.size();i++){
arry[t[i]-'a']--;
}
for(int i=0;i<26;i++){
if(arry[i]!=0) return false;
}
return true;
}
};
在第一次循环中把int数组对应字母的元素+1,第二次循环的时候-1,最后扫描数组,如果全是0则表示全符合题目要求。
在此题目中,数组长度有限,所以可以用数组替代哈希表。