- 检查变位词
新建一个数组用来保存单词中字母的个数。 单词的字母对应整数作为数组的 index 来保存字母的数量。 第一次遍历第一个单词,保存其每个字母的数量。然后遍历第二个单词的字母,将其对应的数组中数量进行减少。 遍历数组判断数组中的字母的数量是否全部为0, 若全部为 0 , 则 2 个单词为变位词,否则不是变位词。
size = 'z' + 1;
int array[size];
int check(char * s1, char * s2) {
int i = 0;
for(int i=0; i < size; i++) array[i] = 0;
while(*s1 != '\0') array[*s1++]++;
while(*s2 != '\0') array[*s2++]--;
for(i=0; i < size; i++) if(array[i] != 0) return 0;
return 1;
}