剑指Offer:互为变位词

// 判断两个单词是否互为变位词: 如果两个单词中的字母相同,并且每个字母出现的次数也相同, 那么这两个单词互为变位词

#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;
}
posted on 2014-07-24 01:39  DayByDay  阅读(292)  评论(0编辑  收藏  举报