背景:力扣第451题 根据字符出现频率排序
C++代码如下,
class Solution {
public:
string frequencySort(string s) {
unordered_map<char, int> cnt;
for (auto c : s) {
cnt[c]++;
}
sort(s.begin(), s.end(), [&](char a, char b) {
return cnt[a] > cnt[b] || (cnt[a] == cnt[b] && a < b);
});
return s;
}
};
Python代码如下,
class Solution:
def frequencySort(self, s: str) -> str:
cnt = defaultdict(int)
for c in s:
cnt[c] += 1
res = sorted(s, key=lambda x: [-cnt[x], x])
res = ''.join(res)
return res