WooKinson

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

问题描述
  Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
  输入格式:输入有两行,分别为两个单词。
  输出格式:输出只有一个字母Y或N,分别表示Yes和No。
  输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
题目描述

 

代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 using namespace std;
 4 
 5 int main(void)
 6 {
 7     char ch1[80+1];
 8     char ch2[80+1];
 9     scanf("%s",ch1);
10     scanf("%s",ch2);
11     if (strlen(ch1)!=strlen(ch2))
12     {
13         printf("N\n");
14         return 0;
15     }
16     
17     int num1[30];
18     int num2[30];
19     memset(num1,0,sizeof(num1));
20     memset(num2,0,sizeof(num2));
21     int len = strlen(ch1);
22     for (int i=0 ; i<len ; i++)
23     {
24         if (ch1[i]>='a' && ch1[i]<='z')
25             num1[ch1[i]-'a'] ++;
26         else
27             num1[ch1[i]-'A'] ++;
28             
29         if (ch2[i]>='a' && ch1[i]<='z')
30             num2[ch2[i]-'a'] ++;
31         else
32             num2[ch2[i]-'A'] ++;
33     }
34     
35     for (int i=0; i<30; i++)
36     {
37         if (num1[i]!=num2[i])
38         {
39             printf("N\n");
40             return 0;
41         }
42     }
43     printf("Y\n");
44     return 0;
45 }
C++解法

 

解题思路:

1.判断两字符串是否相同

2.记录两个字符串的字符个数

3.判断两个字符串的字符个数是否相同

posted on 2018-12-25 11:03  WooKinson  阅读(181)  评论(0编辑  收藏  举报