蓝桥杯 Anagrams问题(数组运算+字符操作)

来源:互联网 发布:浙江2017年专升本数据 编辑:程序博客网 时间:2024/06/05 08:11
 算法训练 Anagrams问题  
时间限制:1.0s   内存限制:512.0MB
    
问题描述
  Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
  输入格式:输入有两行,分别为两个单词。
  输出格式:输出只有一个字母Y或N,分别表示Yes和No。
  输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y

#include<stdio.h>#include<string.h>int main(){    char a[81],b[81];    int ca[26],cb[26];    gets(a);    gets(b);    int l1=strlen(a);    int l2=strlen(b);    memset(ca,0,sizeof(ca));    memset(cb,0,sizeof(cb));    for(int i=0; i<l1; i++)    {        if(a[i]>='A'&&a[i]<='Z')            ca[a[i]-'A']++;        else            ca[a[i]-'a']++;    }    for(int i=0; i<l2; i++)    {        if(b[i]>='A'&&b[i]<='Z')            cb[b[i]-'A']++;        else            cb[b[i]-'a']++;    }    int flag=1;    for(int i=0; i<26; i++)    {        if(ca[i]!=cb[i])        {            flag=0;            break;        }    }    if(flag)        printf("Y\n");    else        printf("N\n");    return 0;}


1 0