问题
题目:[leetcode-451]
思路
- 统计
- 排序
- 累加
代码
class Solution {
public:
string frequencySort(string s) {
map<char, int> counter;
int sz = s.size();
for(int i = 0; i < sz; ++i){
++counter[s[i]];
}
typedef pair<char, int> pair_t;
vector<pair_t> vec( counter.begin(), counter.end() );
struct CmpByValue{
bool operator()( pair_t& lhs, pair_t& rhs ){
return rhs.second < lhs.second;
}
};
sort( vec.begin(), vec.end(), CmpByValue() );
sz = vec.size();
string ret;
for(int i = 0; i < sz; ++i){
int times = vec[i].second;
while( times-- ) ret+= vec[i].first;
}
return ret;
}
};