要求:字符串降频排列
思路:
法一:简单粗暴每个频率开一个vector,时间O(n),空间O(n)
class Solution {
public:
string frequencySort(string s) {
unordered_map<char,int> hash;
int n=s.length();
for(int i=0;i<n;i++)
hash[s[i]]++;
int maxfreq=0;
for(auto a:hash)
maxfreq=max(maxfreq,a.second);
vector<vector<char>> v(maxfreq);
for(auto a:hash)
v[a.second-1].push_back(a.first);
string res="";
for(int i=maxfreq-1;i>=0;i--){
for(auto a:v[i]){
int times=hash[a];
while(times--)
res+=a;
}
}
return res;
}
};
法二:对每个字符开vector统计频率,排序,不写了