1948: 字母统计
时间限制: 3 Sec 内存限制: 64 MB
提交: 77 解决: 58
您该题的状态:已完成
[提交][状态][讨论版]
题目描述
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多的字母有多个,那么输出字典序最小的那个。
输入
第一行输入一个正整数T(0<T<25)
随后T行输入一个字符串s,s长度小于1010。
输出
每组数据输出占一行,输出出现次数最多的字符;
样例输入
3
abcd
bbaa
jsdhfjkshdfjksahdfjkhsajkf
样例输出
a
j
#include<stdio.h>
#include<string.h>
int main() {
int t;
scanf("%d",&t);
getchar();
while(t--) {
char s[1000];
int i,j,k=0,l,M;
int a[26];
for(i=0; i<26; i++)a[i]=0;
gets(s);
l=strlen(s);
int Max=0;
for(i=0; i<l; i++)
a[s[i]-'a']++;
for(i=0; i<26; i++) {
if(a[i]>Max) {
Max=a[i];
M=i;
}
}
printf("%c\n",M+'a');
}
}
总结:此类字符串
1、getchar();消去回车键,
2、能够联想到26个英文字母,遇到一个英文字母后,用此英文字母对应的26个英文字母的脚码+1
3、注意理解a[s[i]-'a']。相当于求出对应英文字母的脚码;