思路
因为是字母相同首先考虑就是用hash来处理,只需要遍历两遍即可。考虑到ascill码的有序性,因此可以考虑先对字符串进行排序,只需要对排完序的字符串进行比较即可。
代码(sort)
class Solution {
public:
//排序做法
bool isAnagram(string s, string t) {
if(s.size()!=t.size())return false;
sort(s.begin(),s.end());
sort(t.begin(),t.end());
return s==t;
}
};
代码(hash)
class Solution {
public:
//hash
bool isAnagram(string s, string t) {
if(s.size()!=t.size())return false;
vector<int> v(26,0);
for(char c:s){
++v[c-'a'];
}
for(char c:t){
--v[c-'a'];
if(v[c-'a']<0)return false;
}
return true;
}
};