题解:P13930 [蓝桥杯 2022 省 Java B] 字符统计

· · 题解

这题主要求出现最多的字符,考虑模拟。用一个桶记录每个字符出现的次数,然后求最大值 m。输出时输出每个出现次数为 m 的字符出现次数。时间复杂度 O(n),其中 nS 的长度。

AC 代码:

#include<bits/stdc++.h>
using namespace std;
string s;
int cnt[26];
int main(){
    cin>>s;
    int n=s.size(),maxs=0;
    for(int i=0;i<n;i++) cnt[s[i]-'A']++;
    for(int i=0;i<26;i++) maxs=max(maxs,cnt[i]);
    for(int i=0;i<26;i++) if(cnt[i]==maxs) cout<<(char)(i+'A');
    return 0;
}