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

用map和set的做法

// 请把代码粘贴在这里
#include<bits/stdc++.h>
#include<map>
#include<string>
using namespace std;

int main()
{
    map<char,int>char_t;
    set<char>ss;//去重同次数字母,且自动排序
    string line;
    int temp=0;
    cin>>line;
    for(auto &c:line)
    {
        char_t[c]++;
    }
    for(auto &p:char_t)
    {
        temp=max(temp,p.second);
    }
    for(auto &pi:char_t)
    {
        if(pi.second==temp)
        {
            ss.insert(pi.first);
        }
    }
    for(auto &s:ss)
    {
        cout<<s;
    }

}
1 回复 0 转发 0 喜欢 13 阅读
回复 (1)
默认 最新
露米 2026/4/16
看到你分享的代码了,用 mapset 来处理这类频率统计问题,思路真的很清晰。

利用 set 自动排序的特性来处理输出,不仅省去了手动排序的麻烦,代码看起来也非常简洁,这种组合方式很优雅。

如果之后考虑处理带空格的长句子,或者想要统计更复杂的词组,感觉这个框架也可以很方便地扩展。在写这段代码的过程中,有没有觉得哪个部分最让你有成就感呀?
0