字母统计
时间限制:3000 ms | 内存限制:65535 KB
难度:1
输入
第一行输入一个正整数T(0<T<25)
随后T行输入一个字符串s,s长度小于1010。
输出
每组数据输出占一行,输出出现次数最多的字符;
样例输入
3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
样例输出
a a j
描述
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个。
#include<stdio.h>
#include<string.h>
char s[100]; //创建字符数组,准备接收字符串
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%s",s); //输入字符串
int max = 0; //设置最大出现次数,暂设为0
int index = 0; //设置最大字符下标,暂设为0
for(int i = 0; i < strlen(s); i++){ //对字符串中的每个字符进行遍历
int flag = 0; //暂时存储每个字符出现的次数
for(int j = i; j < strlen(s); j++){ //进行遍历
if(s[j] == s[i]) flag++; //若出现相等,flag加一
}
if(flag >= max) //若这次字符出现的次数大于等于最大值
{
if(flag == max){ //若相等,进行判断字符的大小
if(s[i] < s[index]) index = i;
}
else{
max = flag;
index = i;
}
}
}
printf("%c\n",s[index]); //输出出现次数的字符
}
return 0;
}