- 242.有效的字母异位词
:::info
用
s[i]-'a'
作为哈希函数。
可以理解为:先用一个数组填满储蓄池,另一个数组来花,要是花不完,或者多花了,那么就错了。要刚好花完第一个数组洒在池子里的钱。 ::: 代码:(详细注释)
分析:class Solution {
public:
bool isAnagram(string s, string t) {
int record[26] = {0};
for (int i = 0; i < s.size(); i++) {
// 并不需要记住字符a的ASCII,只要求出一个相对数值就可以了
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) {
// record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。
return false;
}
}
// record数组所有元素都为零0,说明字符串s和t是字母异位词
return true;
}
};
经典