C语言 · Anagrams问题

问题描述
  Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
  输入格式:输入有两行,分别为两个单词。
  输出格式:输出只有一个字母Y或N,分别表示Yes和No。
  输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
 
 
  1 /*
  2     思路:都转换成小写,在长度相等的情况下,
  3           分别遍历记录下每个字母出现的次数。
  4           最后比较各个数字是否相等。
  5     
  6     字符串数组长度:100 ——单词长度不会超过80。 
  7 */
  8 #include<stdio.h>
  9 #include<string.h>
 10 #include<iostream>
 11 #include<ctype.h>//C语言转换大小写头文件 
 12 int main(){
 13     char c1[100],c2[100];//定义字符串数组 
 14     int a[26],b[26];//记录出现次数 
 15     memset(a,0,sizeof(a));
 16     memset(b,0,sizeof(b));
 17     scanf("%s
%s",c1,c2);
 18     int len1,len2;
 19     len1=strlen(c1);//求字符串长度
 20     len2=strlen(c2);
 21     int i;
 22 
 23     if(len1 != len2){
 24         printf("N");
 25     }else{
 26         /*遍历c1*/
 27         for(i = 0; i < len1; i++){
 28 //            str1[i] = tolower(c1[i]);
 29             if(c1[i] == 'a'||c1[i] == 'A')
 30                 a[0]++;
 31             else if(c1[i] == 'b'||c1[i] == 'B')
 32                 a[1]++;
 33             else if(c1[i] == 'c'||c1[i] == 'C')
 34                 a[2]++;
 35             else if(c1[i] == 'd'||c1[i] == 'D')
 36                 a[3]++;
 37             else if(c1[i] == 'e'||c1[i] == 'E')
 38                 a[4]++;
 39             else if(c1[i] == 'f'||c1[i] == 'F')
 40                 a[5]++;
 41             else if(c1[i] == 'g'||c1[i] == 'G')
 42                 a[6]++;
 43             else if(c1[i] == 'h'||c1[i] == 'H')
 44                 a[7]++;
 45             else if(c1[i] == 'i'||c1[i] == 'I')
 46                 a[8]++;
 47             else if(c1[i] == 'j'||c1[i] == 'J')
 48                 a[9]++;
 49             else if(c1[i] == 'k'||c1[i] == 'K')
 50                 a[10]++;
 51             else if(c1[i] == 'l'||c1[i] == 'L')
 52                 a[11]++;
 53             else if(c1[i] == 'm'||c1[i] == 'M')
 54                 a[12]++;
 55             else if(c1[i] == 'n'||c1[i] == 'N')
 56                 a[13]++;
 57             else if(c1[i] == 'o'||c1[i] == 'O')
 58                 a[14]++;
 59             else if(c1[i] == 'p'||c1[i] == 'P')
 60                 a[15]++;
 61             else if(c1[i] == 'q'||c1[i] == 'Q')
 62                 a[16]++;
 63             else if(c1[i] == 'r'||c1[i] == 'R')
 64                 a[17]++;
 65             else if(c1[i] == 's'||c1[i] == 'S')
 66                 a[18]++;
 67             else if(c1[i] == 't'||c1[i] == 'T')
 68                 a[19]++;
 69             else if(c1[i] == 'u'||c1[i] == 'U')
 70                 a[20]++;
 71             else if(c1[i] == 'v'||c1[i] == 'V')
 72                 a[21]++;
 73             else if(c1[i] == 'w'||c1[i] == 'W')
 74                 a[22]++;
 75             else if(c1[i] == 'x'||c1[i] == 'X')
 76                 a[23]++;
 77             else if(c1[i] == 'y'||c1[i] == 'Y')
 78                 a[24]++;
 79             else if(c1[i] == 'z'||c1[i] == 'Z')
 80                 a[25]++;
 81         }
 82 
 83         /*遍历c2*/
 84         for(i = 0; i < len2; i++){
 85 //            c2[i] = tolower(c2[i]);
 86             if(c2[i] == 'a' || c2[i] == 'A')
 87                 b[0]++;
 88             else if(c2[i] == 'b'||c2[i] == 'B')
 89                 b[1]++;
 90             else if(c2[i] == 'c'||c2[i] == 'C')
 91                 b[2]++;
 92             else if(c2[i] == 'd'||c2[i] == 'D')
 93                 b[3]++;
 94             else if(c2[i] == 'e'||c2[i] == 'E')
 95                 b[4]++;
 96             else if(c2[i] == 'f'||c2[i] == 'F')
 97                 b[5]++;
 98             else if(c2[i] == 'g'||c2[i] == 'G')
 99                 b[6]++;
100             else if(c2[i] == 'h'||c2[i] == 'H')
101                 b[7]++;
102             else if(c2[i] == 'i'||c2[i] == 'I')
103                 b[8]++;
104             else if(c2[i] == 'j'||c2[i] == 'J')
105                 b[9]++;
106             else if(c2[i] == 'k'||c2[i] == 'K')
107                 b[10]++;
108             else if(c2[i] == 'l'||c2[i] == 'L')
109                 b[11]++;
110             else if(c2[i] == 'm'||c2[i] == 'M')
111                 b[12]++;
112             else if(c2[i] == 'n'||c2[i] == 'N')
113                 b[13]++;
114             else if(c2[i] == 'o'||c2[i] == 'O')
115                 b[14]++;
116             else if(c2[i] == 'p'||c2[i] == 'P')
117                 b[15]++;
118             else if(c2[i] == 'q'||c2[i] == 'Q')
119                 b[16]++;
120             else if(c2[i] == 'r'||c2[i] == 'R')
121                 b[17]++;
122             else if(c2[i] == 's'||c2[i] == 'S')
123                 b[18]++;
124             else if(c2[i] == 't'||c2[i] == 'T')
125                 b[19]++;
126             else if(c2[i] == 'u'||c2[i] == 'U')
127                 b[20]++;
128             else if(c2[i] == 'v'||c2[i] == 'V')
129                 b[21]++;
130             else if(c2[i] == 'w'||c2[i] == 'W')
131                 b[22]++;
132             else if(c2[i] == 'x'||c2[i] == 'X')
133                 b[23]++;
134             else if(c2[i] == 'y'||c2[i] == 'Y')
135                 b[24]++;
136             else if(c2[i] == 'z'||c2[i] == 'Z')
137                 b[25]++;
138         }
139         for(i=0;i<26;i++){
140             if(a[i] != b[i]){
141                 printf("N");
142                 break;
143             }
144         }
145         if(i>=26){
146             printf("Y");
147         }
148     }
149     return 0;
150 }
原文地址:https://www.cnblogs.com/panweiwei/p/6255247.html