题目链接
这题思路比较简单,考虑到26个小写字母的ASCII是连续的,那么我们可以设置一个size为26的哈希表record
,然后记录26个字母分别在string中出现的次数。例如,record[0]
记录的是字母‘a’
出现的次数。于是我们主要就是要获得每个出现字母的下标,这里我们可以通过s[i]-'a'
计算出。
class Solution {
public:bool isAnagram(string s, string t) {int record[26] = {0};for(int i = 0; i < s.size(); i++){record[s[i]-'a']++;}for(int i = 0; i < t.size(); i++){record[t[i]-'a']--;}for(int i = 0; i < 26; i++){if(record[i]!=0) return false;}return true;}
};