- 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;}};
经典
