题解 | #字符统计#

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

#include <iostream>
#include <utility>
using namespace std;
#include <vector>
#include<algorithm>
#include<unordered_map>
bool compare(pair<char, int>&l,pair<char,int>r)
{
    if(l.second==r.second)return l.first<r.first;//若出现次数相同,则比较ASCII玛大小
    else return l.second>r.second;//按照出现次数从大到小排列
}
int main() {
    string s;cin>>s;
    vector<pair<char,int>>vec;
    unordered_map<char, int>m;
    for(auto i:s)
    {
        m[i]++;//用unordered_map对string进行统计
    }
    for(auto u:m)
    {
        vec.push_back({u.first,u.second});//将统计好的key:value插入到vec容器
    }
    sort(vec.begin(),vec.end(),compare);//对vec容器排序
    for(auto a:vec)
    {
        cout<<a.first;
    }
    
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务