杭電1860-統計文字

5228 ワード

統計文字
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8535    Accepted Submission(s): 5403
Problem Description
指定された文字列に指定された文字が表示された回数を統計します.
 
 
Input
テスト入力にはいくつかのテスト例が含まれており、各テスト例は2行、1行目は5を超えない文字列、2行目は80を超えない文字列を含む.ここで、文字列にはスペースが含まれています.すなわち、スペースは統計を必要とする文字の1つでもあります.'#'を読むと入力が終了し、対応する結果は出力されません.
 
 
Output
各テストケースについて、1行目の文字列の各文字が2行目の文字列に現れる回数を統計し、以下の形式で出力します.
c0 n0
c1 n1
c2 n2
...
ここでciは1行目のi番目の文字であり、niはciが現れる回数である.
 
 
Sample Input
I
THIS IS A TEST
i ng
this is a long test string
#
 
 
Sample Output
I 2
i 3
  5
n 2
g 2注:2番目のテスト例では、スペースも統計された文字の1つです.
 
 
Source
浙大コンピュータ大学院生の再試験の上機試験-2007年
 
 
Recommend
lcy   |   We have carefully selected several similar problems for you:  
1859  
1862  
1861  
1864  
1877  
//AC:午後の文字列作りも、酔っ払った.
 1 #include <stdio.h>
 2 #include <string.h>
 3 char str[6], ch[90] ;
 4 int main() 
 5 {
 6     int num[10] ;
 7     while(gets(str), str[0] != '#')
 8     {
 9         memset(num, 0, sizeof(num)) ;
10         gets(ch) ;
11         int len = strlen(ch) ;
12         int wan = strlen(str) ;
13         int i, j ;
14         for(i=0; i<wan; i++)
15         for(j=0; j<len; j++)
16         {
17             if(ch[j] == str[i])
18             num[i]++;
19         }
20         for(i=0; i<wan; i++)
21         printf("%c %d
",str[i], num[i]) ; 22 } 23 return 0 ; 24 }