有效的字母异位词【字符串哈希】
题目
题解:
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方法。