题目描述:
判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多。
输入格式:
1 行,是一个由 a-z 这 26 个字符组成的字符串,不超过 1000 个字符且非空。
输出格式:
一行输出包括出现次数最多的字符和该字符出现的次数,中间用一个空格隔开。
如果有多个字符出现的次数相同且最多,那么输出 ascii 码最小的那一个字符。
样例输入:
adfadffasdf
样例输出:
f 4
提示:
注意一行内容如何读进来。
可参考如下方法:
把整串字符读进来,放到字符型的数组a中。
while ( cin>>c ) a[++n]=c ;
在屏幕上输入CTRL + z ,表示输入结束。
代码如下:
#include<bits/stdc++.h>
using namespace std;
char a[1001];
int main(){
cin>>a;
int s=strlen(a);
int b[26]={0},max=0,c;
for(int i=0;i<s;i++){
b[a[i]-'a']++;
}
for(int i=0;i<26;i++){
if(b[i]>max){
max=b[i];
c=i;
}
}
cout<<char(c+'a')<<" "<<max;
return 0;
}