- 题目描述
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。
- 题解
桶排序
- 代码
class Solution {
public:
string frequencySort(string s) {
unordered_map<char,int> mymap;
int maxcnt=0;
for (char c:s){
maxcnt=max(maxcnt,++mymap[c]);
}
vector<vector<char>> cnt(maxcnt+1);
for (auto m:mymap){
cnt[m.second].push_back(m.first);
}
string res=s;
int c=0;
for (int i=maxcnt;i>=0;i--){
for (int j=0;j<cnt[i].size();j++){
for (int k=0;k<i;k++) res[c++]=cnt[i][j];
}
}
return res;
}
};