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