题目
题解:
1.排序:
#include<algorithm>
class Solution{
public:
bool isAnagram(string s,string t)
{
sort(s.begin(),s.end());
sort(t.begin(),t.end());
return s==t;
}
}
时间复杂度O(nlogn)
2.哈希表
#include<algorithm>
int hash1[100];
int hash2[200];
class Solution {
public:
bool isAnagram(string s, string t)
{
if(s.length()!=t.length())
return false;
vector<int> hash(26,0);
for(auto ch:s)
hash[ch-'a']++; //这是的对于字符串常用的一种哈希方法
for(auto ch:t)
{
hash[ch-'a']--;
if(hash[ch-'a']<0) return false;
}
return true;
}
};
时间复杂度O(n)
总结:
记住table[ch-'a']这种对字符串的常用Hash方法。