AcWing 3303. 单词分析
原题链接
简单
#include<iostream>
using namespace std;
string s;
int flag[30];
// flag:用于记录每个字母出现的次数覆盖a-z
int main(){
cin>>s;
int n=s.size();
// 遍历字符串s中的每个字符
for(int i=0;i<n;i++){
// 计算当前字符在字母表中的位置(1-26)
int id=s[i]-'a'+1;
// 对应位置的计数器加1
flag[id]++;
}
int cnt=0; // cnt用于记录出现次数最多的字母的出现次数
int idx=0; // idx用于记录出现次数最多的字母的索引
// 遍历flag数组,找到出现次数最多的字母
for(int i=1;i<=26;i++){
if(flag[i]>cnt){ // 如果当前字母的出现次数大于已记录的最大次数
cnt=flag[i]; // 更新最大次数
idx=i; // 更新出现次数最多的字母的索引
}
}
// 将出现次数最多的字母的索引转换为对应的字符
char x='a'+idx-1;
// 输出出现次数最多的字母及其出现次数
cout<<x<<endl<<cnt<<endl;
return 0; // 程序结束,返回0
}