您的位置:首页 > 其它

CSU OJ 1505: 酷酷的单词

2017-08-02 20:18 211 查看


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



Hint


Source

湖南省第十届大学生计算机程序设计竞赛

想法:水题

代码:

#include<stdio.h>

#include<string.h>

char s[10010][50];

int a[10010][30];

int main()

{

    int n;int ws=1;

    while(scanf("%d",&n)!=EOF)

    {

        memset(a,0,sizeof(a));

        int i,j;

        for(i=0;i<n;i++)

        {

            scanf("%s",s[i]);

        }

        for(i=0;i<n;i++)

        {

            for(j=0;j<strlen(s[i]);j++)

            {

                a[i][s[i][j]-'a']++;

            }

        }

        /*for(i=0;i<n;i++)

        {

            for(j=0;j<30;j++)

            {

                printf("%d\t",a[i][j]);

            }

            printf("\n");

        }*/

        int k,t,flag,count=0;

        for(i=0;i<n;i++)

        {

            flag=0,t=0;

            for(j=0;j<30;j++)

            {

                for(k=0;k<j;k++)

                {

                    if(a[i][j]==a[i][k]&&a[i][j]+a[i][j]!=0)

                    {

                        flag=1;

                        break;

                    }

                }

                if(a[i][j]!=0)

                {

                  t++;

                }

            }

            if(flag==0&&t>1)

            {

             count++;

            }

        }

     printf("Case %d: %d\n",ws++,count);

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: