使用数组a为s中每个字母+1计数,再遍历t,将出现的字母都减1,最后再遍历数组a,如果有出现不等于0的情况,说明不是异位词。
class Solution {
public:
bool isAnagram(string s, string t) {
char a[26]={0};
for(int i=0;i<s.size();++i)
{
a[s[i]-'a']++;
}
for(int i=0;i<t.size();++i)
{
a[t[i]-'a']--;
}
for(int i=0;i<26;++i)
{
if(a[i]!=0)
return false;
}
return true;
}
};
数组就像一个简单的哈希表。