哈希表-有效的字母异位
题目链接
遍历字符串s的时候,只需要将 s[i] - ‘a’ 所在的元素做+1 操作即可, 这样就将字符串s中字符出现的次数,统计出来了。
那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。
那么最后检查一下,record数组如果有的元素不为零0,说明字符串s和t一定是谁多了字符或者谁少了字符,return false。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| bool isAnagram(char * s, char * t){ int record[26] = {0}; int len_s = strlen(s); int len_t = strlen(t);
for(int i = 0; i < len_s; i++){ record[s[i]-'a']++; } for(int j = 0; j < len_t; j++){ record[t[j]-'a']--; } for(int k = 0; k < 26; k++){ if(record[k] != 0)return false; } return true; }
|