zoukankan      html  css  js  c++  java
  • B

    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

    分析:本题的关键问题,如何计算每一个字母出现的次数;如何判断两个字母出现的次数是否相等.
    恩,这题做了很久,就是感觉自己对一些与字符有关的问题,还是有很多问题,不擅长,以后自己得多注意了。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 int main()
     6 {
     7     int n,ans,cnt,flag,m,i,j;
     8     char s[32];
     9     int tot[26];
    10     ans=1;
    11     while(scanf("%d",&n)!=EOF)
    12     {
    13         cnt=0;
    14         while(n--)
    15         {
    16           flag=1;
    17             scanf("%s",&s);
    18             memset(tot,0,sizeof(tot));
    19             m=strlen(s);
    20             for(i=0; i<m; i++)
    21                 tot[s[i]-'a']++;//每一个字母的个数
    22             for(i=0; i<26; i++) //判断是否是酷酷单词
    23                 for(j=i+1; j<26; j++)
    24                 {
    25                     if(tot[i]==tot[j]&&tot[i]!=0)
    26                     {
    27                         flag=0;//大意了,if到第一个分号就结束了
    28                         break;
    29                     }
    30 
    31                 }
    32             if(flag==1&&m!=1)
    33                 cnt++;
    34         }
    35      printf("Case %d: %d
    ",ans++,cnt);
    36     }
    37 }
    View Code



  • 相关阅读:
    堆和栈的差别(转过无数次的文章)
    【java】Windows7 下设置环境变量
    很好的理解遗传算法的样例
    Flex里的特效
    Spring3.0 AOP 具体解释
    send,recv,sendto,recvfrom
    协方差矩阵, 相关系数矩阵
    解决Shockwave flash在chrome浏览器上崩溃的问题
    杂记之activity之间的跳转
    DropdownList绑定的两种方法
  • 原文地址:https://www.cnblogs.com/lbyj/p/5774255.html
Copyright © 2011-2022 走看看