描述统计一句话里面出现次数最多的英文字母,字母大小写无关。
关于输入第一行为一个整数n,表示有n行数据。
其后每行为一个英文句子,每个句子长度不超过255个字符(包括空格,标点等非字母字符)。
关于输出有n行输出。
每行为对应英文句子中出现的最多的字母(小写)。
如果有多个字母出现次数最多,则按字典顺序输出它们。
例子输入
1 Institue of Network Computing and Information System
例子输出
nt
描述统计一句话里面出现次数最多的英文字母,字母大小写无关。
关于输入第一行为一个整数n,表示有n行数据。
其后每行为一个英文句子,每个句子长度不超过255个字符(包括空格,标点等非字母字符)。
关于输出有n行输出。
每行为对应英文句子中出现的最多的字母(小写)。
如果有多个字母出现次数最多,则按字典顺序输出它们。
例子输入
1 Institue of Network Computing and Information System
例子输出
nt
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
int n;
char a[255];//用于存储输入的字符
int fre[26];//对26个字母进行计数
int i,len,big,k,t;
scanf("%d",&n);
getchar();//吸收回车,避免影响到之后的输入
char b[26][26];//用于存储结果
for(k=0;k<n;k++){
t=0;
big = 0;
cin.getline(a,255);
for(i=0;i<26;i++){
fre[i]=0;
}
len=strlen(a);
if(len==0){
b[k][t] = '\0';
continue;
}
for(i=0;i<len;i++){
if(a[i]>='a'&&a[i]<='z'){
fre[a[i]-'a']++;
if(fre[a[i]-'a']>big){
big=fre[a[i]-'a'];
}
}
if(a[i]>='A'&&a[i]<='Z'){
fre[a[i]-'A']++;
if(fre[a[i]-'A']>big){
big=fre[a[i]-'A'];
}
}
}
for(i=0;i<26;i++){
if(big==fre[i]){
b[k][t] = i+'a';
t++;
}
}
b[k][t] = '\0';//字符串结束
}
for(k=0;k<n;k++){
printf("%s\n", b[k]);//输出结果
}
return 0;
}