思路一:
class Solution {
public:
bool isAnagram(string s, string t) {
vector<int> alphabet(26,0);
for(int i = 0;i < s.size();i++)
alphabet[s[i] - 'a']++;
for(int j = 0;j < t.size();j++)
alphabet[t[j] - 'a']--;
for(int i : alphabet)
if(i != 0)
return false;
return true;
}
};
改进方案:
1.俩个循环可以合并;2.vector可以改成unordered_map 遍历的速度可以更快。
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.size() != t.size())
return false;
unordered_map<char,int> alphabet;
for(int i = 0;i < s.size();i++)
{
alphabet[s[i] - 'a']++;
alphabet[t[i] - 'a']--;
}
for(auto word : alphabet)
if(word.second)
return false;
return true;
}
};