0%

代码随想录第十四天

哈希表-有效的字母异位

题目链接

遍历字符串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;
}