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