242 . 有效的字母异位词(简单)
方法:哈希表
思路
- 首先判断两个字符串长度是否相等,不相等直接返回 false;
- 接下来设置一个长度为26 的哈希表,分别对应26个小写字母;遍历两个字符串,对于 s 出现的字符在 vocabulary 对应位置 +1, 对于 t 出现的字符在 vocabulary 对应位置 -1 。
- 最后遍历 vocabulary,如果值都为 0 ,说明二者是异位词,否则返回 false。
代码
class Solution {
public:
bool isAnagram(string s, string t) {
vector<int> vocabulary(26, 0);
if(s.size() != t.size()) return false;
for(int i=0; i<s.size(); ++i) {
vocabulary[s[i] - 'a'] ++;
vocabulary[t[i] - 'a'] --;
}
for(int i=0; i<26; ++i){
if(vocabulary[i] != 0) return false;
}
return true;
}
};