typedef pair<char, int> PAIR;
class Solution {
public:
static int cmp(const PAIR &x, const PAIR &y)
{
return x.second > y.second;
}
string frequencySort(string s) {
map<char, int> s_m;
int s_len = s.length();
vector<PAIR> pair_vec;
for(int i = 0; i < s_len; i++)
{
if(s_m.count(s[i]) > 0)
s_m[s[i]]++;
else
s_m[s[i]] = 1;
}
for (map<char, int>::iterator map_iter = s_m.begin(); map_iter != s_m.end(); ++map_iter)
{
pair_vec.push_back(make_pair(map_iter->first, map_iter->second));
}
sort(pair_vec.begin(), pair_vec.end(), cmp);
string result = "";
for (vector<PAIR>::iterator curr = pair_vec.begin(); curr != pair_vec.end(); ++curr)
{
string a(curr->second, curr->first);
result += a;
}
cout << result << endl;
return result;
}
};
Leetcode 451. Sort Characters By Frequency
最新推荐文章于 2024-07-21 15:36:00 发布