题目:统计字母出现的次数。
分析:简单题。简单的字符串处理。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
using namespace std;
typedef struct dnode
{
char c;
int n;
}data;
data D[26];
int cmp( data a, data b )
{
if ( a.n != b.n )
return a.n > b.n;
return a.c < b.c;
}
int main()
{
int n;
char temp[1000];
while ( ~scanf("%d",&n) ) {
getchar();
for ( int i = 0 ; i < 26 ; ++ i ) {
D[i].c = 'A'+i;
D[i].n = 0;
}
while ( n -- ) {
gets(temp);
for ( int i = 0 ; temp[i] ; ++ i ) {
if ( temp[i] >= 'a' && temp[i] <= 'z' )
temp[i] += 'A'-'a';
if ( temp[i] >= 'A' && temp[i] <= 'Z' )
D[temp[i]-'A'].n ++;
}
}
sort( D, D+26, cmp );
for ( int i = 0 ; i < 26 ; ++ i )
if ( D[i].n ) printf("%c %d\n",D[i].c,D[i].n);
else break;
}
return 0;
}