来源:Leetcode242
题目描述:
思路:需要快速查找字符是否出现,考虑使用哈希表
开辟一个大小为26的数组对映26个字符初始值为0
根据s中的字符,利用ASCII,将对应位置的元素置1 (nums[s[i]-‘a’]++)
再根据t中字符,将元素置0
元素均为0时则为字母异位词。
代码:
class Solution {
public:
bool isAnagram(string s, string t) {
int nums[26]={0};
for(int i=0;i<s.size();i++){
nums[s[i]-'a']++;
}
for(int i=0;i<t.size();i++){
nums[t[i]-'a']--;
}
for(int i=0;i<26;i++){
if(nums[i]!=0){
return false;
}
}
return true;
}
};