array 排序
1 | array<int,128> v; |
map 排序
1 | map<char,int> v; |
couting 计数思想
用vector<pair<int,char>> 存次数和其对应的字符
按次数降序 构成一个新的string1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23class Solution {
public:
string frequencySort(string s) {
vector<int> f(128,0);
for(int i=0;i<s.length();i++){
f[s[i]]++;
}
vector<pair<int,char>> v;
for(int i=0;i<128;i++){
if(f[i]>0)
v.push_back(pair<int,int>(f[i],i));
}
sort(v.rbegin(),v.rend());
string ans;
for(auto t:v){
ans.append(t.first,t.second);
}
return ans;
}
};
参考链接
关于empalce_back 和 push_back
https://blog.csdn.net/xiaolewennofollow/article/details/52559364