// 判断两个单词是否互为变位词: 如果两个单词中的字母相同,并且每个字母出现的次数也相同, 那么这两个单词互为变位词 #include <stdio.h> #include <string.h> int is_anagram(char *s1, char *s2) // 判断两个数是否互为变位词, 若是返回1 { if(strlen(s1) != strlen(s2)) return 0; int count[256] = {0}; char *p; p = s1; while( *p != ‘\0‘ ) count[*p++] += 1; p = s2; while( *p != ‘\0‘ ) count[*p++] -= 1; int i; for( i=0; i<256; i++ ) if( count[i] != 0 ) return 0; return 1; } int main(void) { char s1[101], s2[101]; scanf("%s",s1); scanf("%s",s2); if( is_anagram(s1,s2) ) printf("Yes\n"); else printf("No\n"); return 0; }
原文地址:http://www.cnblogs.com/DayByDay/p/3864434.html