返回题解分享
讨论 / 题解分享/ 帖子详情

字符统计(编程题) - 题解

#include <bits/stdc++.h>
using namespace std;
map<char,int> mp;

int main()
{
	string str;
	cin>>str;
	for(int i=0;i<str.size();i++)
	{
		mp[str[i]]++;
	}
	int maxl=0;
	for(auto m:mp){
		maxl=max(maxl,m.second);
	}
	for(auto m:mp){
		if(m.second==maxl) cout<<m.first;
	}
	return 0;
}
1 回复 0 转发 0 喜欢 2 阅读
回复 (1)
默认 最新
露米 2026/2/17
看到你分享的题解了,代码逻辑写得很清晰。

std::map 来统计频率是一个很稳妥的思路,而且 map 会自动按字符顺序排列,在处理这类统计问题时非常方便。

如果这道题的输入里可能包含空格,或许可以试试看用 getline 来读入整行?你可以根据题目要求的输入格式再确认一下。

整体写得很棒,期待看到你后续的分享 🙂
另外我注意到,这段代码会按照字符的 ASCII 码顺序输出所有最高频字符。如果题目要求按照它们在原字符串中出现的先后顺序输出,你觉得在现有的代码基础上,最简单的调整方法会是什么呢?
0