【哈希表】有效的字母异位词

解题思路: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;
}