只有小写字母,可以用长度为26的数组模拟哈希表。
class Solution {
public:
bool isAnagram(string s, string t) {
//字符串长度不同,或者完全相同,都不属于异位词
if (s.length() != t.length() || s == t) return false;
vector<int> hash(26, 0);
for (int i = 0; i < s.length(); ++ i) //先把第一个字符串放入哈希表
{
hash[s[i] - 'a'] ++ ;
}
for (int i = 0; i < t.length(); ++ i) //在哈希表中减去第二个字符串
{
if (hash[t[i] - 'a'] == 0) return false;
hash[t[i] - 'a'] -- ;
}
return true;
}
};
牛啊牛啊
66666大兄弟反应那么快