字符统计2

Problem Description
输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

Output
逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。

Sample Input
I am a student
a good programming problem
ABCD abcd ABCD abcd
Sample Output
a 2
o 4
A 2
Hint

Source

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int a[200],i,l,max,j;
    char s[101];
    while(gets(s))
    {
        memset(a,0,sizeof(a));
        l=strlen(s);
        for(i=0; i<l; i++)
        {
            if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
                a[s[i]]++;
        }
        max=a[0];
        j=0;
        for(i=1; i<200; i++)
        {
            if(a[i]>max)
            {
                max=a[i];
                j=i;
            }
        }
        printf("%c %d\n",j,max);
    }
    return 0;
}

上一篇:codeforces global round5 ABCD题解


下一篇:基础面试,为什么面试官总喜欢问String?