解题思路:
(1)自定义排序
#include<iostream>
#include<unordered_map>
#include<vector>
#include<algorithm>
using namespace std;
void helper(string s) {
unordered_map<char,int> mp;
for(int i=0;i<s.length();i++) {
mp[s[i]]++;
}
vector<pair<char,int>> v;
for(auto it=mp.begin();it!=mp.end();it++) {
v.push_back({it->first,it->second});
}
auto comp=[&](const pair<char,int> &a,const pair<char,int> &b) {
if(a.second>b.second) return true;
else if(a.second<b.second) return false;
else if(a.first<b.first) return true;
else return false;
};
sort(v.begin(),v.end(),comp);
for(int i=0;i<v.size();i++) {
cout<<v[i].first;
}
cout<<endl;
return;
}
int main() {
string s;
while(cin>>s) {
helper(s);
}
return 0;
}