问题描述
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
问题分析
此问题与383. Ransom Note(赎金信)类似,只是字符变为了a-z这26个字符,然后要保证】对应的字符出现的次数相同。
代码
bool isAnagram(char* s, char* t) {
int a[26] = {0};
int b[26] = {0};
for(int i = 0; s[i] != '\0'; i++){
a[s[i]-'a']++;
}
for(int i = 0; t[i] != '\0'; i++){
b[t[i]-'a']++;
}
for(int i = 0; i < 26; i++){
if(a[i] != b[i]){
return false;
}
}
return true;
}