
解题思路:Hash表解题(最优解)
1.创建一个26位的数组,用作Hash表。
2.遍历s,每当一个元素出现,在s[i]-'a'的位置上加1
3.遍历t,在每个元素所对应的位置上减一
4.遍历Hash表。如果Hash表上有位置不为0,返回false。否则返回true
bool isAnagram(char * s, char * t){
int i, alpha[26];
for( i = 0; i < strlen(s); i++) {
alpha[s[i] - 'a']++;
}
for( i = 0; i < strlen(t); i++) {
alpha[t[i] - 'a']--;
}
for( i = 0; i < 26; i++) {
if(alpha[i] != 0){
return 0;
}
}
return 1;
}
