1. 程式人生 > >ACM--酷酷的單詞--CSU 1505--湖南第十屆省賽

ACM--酷酷的單詞--CSU 1505--湖南第十屆省賽

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
==================================傲嬌的分割線============================== 很簡單,就是統計一下每個字母出現的次數,如果次數都不相同,總結果增加,沒有什麼演算法,是一個水題
#include <stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main(){
   int n,result,i,j,falg,k=1,len;
   char s[32];
   int a[26];
   while(scanf("%d",&n)!=EOF){
       result=0;//結果
       while(n--){
          scanf("%s",&s);
          falg=1;
          memset(a,0,sizeof(a));
           len=strlen(s);
          for(i=0;i<len;i++){
              a[s[i]-'a']++;//統計單詞出現的次數
          }
          for(i=0;i<26;i++){
            for(j=i+1;j<26;j++){//這裡非常重要,j=i+1
               if(a[i]==a[j]&&a[i]!=0){
                    falg=0;
                    break;
               }
            }
          }
         if(falg==1&&len!=1){
            result++;
         }
       }
       printf("Case %d: %d\n",k++,result);
   }
}

參考部落格:http://blog.csdn.net/whjkm/article/details/44354485