题解 | #字符统计#
字符统计
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")

