输入一些仅由小写字母组成的单词。你的任务是统计有多少个单词是“酷”的,即每种字母出现的次数都不同。
比如ada是酷的,因为a出现2次,d出现1次,而1和2不同。再比如,banana也是酷的,因为a出现3次,n出现2次,b出现1次。但是,bbacccd不是酷的,因为a和d出现的次数相同(均为1次)。
标签:
Description
输入一些仅由小写字母组成的单词。你的任务是统计有多少个单词是“酷”的,即每种字母出现的次数都不同。
比如ada是酷的,因为a出现2次,d出现1次,而1和2不同。再比如,banana也是酷的,因为a出现3次,n出现2次,b出现1次。但是,bbacccd不是酷的,因为a和d出现的次数相同(均为1次)。
Input
输入包含不超过30组数据。每组数据第一行为单词个数n (1<=n<=10000)。以下n行各包含一个单词,字母个数为1~30。
Output
对于每组数据,输出测试点编号和酷单词的个数。
Sample Input
2
ada
bbacccd
2
illness
a
Sample Output
Case 1: 1
Case 2: 0
简单的题目,但是注意 aaa 是不“酷”的
1 #include <stdio.h>
2 #include <string.h>
3
4 char str[32];
5 int ch[26];//字母的个数
6 bool times[32];//字母的数量
7
8 int main()
9 {
10 int i,n,Case=0;
11 while (scanf("%d",&n)!=EOF)
12 {
13 int ans=0;
14 while (n--)
15 {
16 scanf("%s",str);
17 memset(ch,0,sizeof(ch));
18 int len=strlen(str);
19
20 for (i=0;i<len;i++)//计数
21 ch[str[i]-‘a‘]++;
22
23 memset(times,0,sizeof(times));
24 int ok=1;
25 int num=0;
26 for (i=0;i<26;i++)
27 {
28 if (ch[i]!=0) num++;
29 if (ch[i]!=0 && times[ch[i]]==0)
30 times[ch[i]]=1;
31 else if (ch[i]!=0 && times[ch[i]]==1)//只要有字母数量一样的
32 {
33 ok=0;
34 break;
35 }
36 }
37 if (ok&&num!=1)
38 ans++;
39 }
40 printf("Case %d: %d\n",++Case,ans);
41 }
42 return 0;
43 }
标签:
原文地址:http://www.cnblogs.com/haoabcd2010/p/5774421.html