Closed congr closed 5 years ago
class Solution {
public String frequencySort(String s) {
Map<Character, Integer> map = new HashMap();
PriorityQueue<Character> pq = new PriorityQueue<>((a,b) -> map.get(b) - map.get(a));
for (char c : s.toCharArray()) map.merge(c, 1, Integer::sum);
for (char c : map.keySet()) pq.add(c); // !!!!
StringBuilder sb = new StringBuilder();
while(!pq.isEmpty()) {
char c = pq.remove();
for (int i = 0; i < map.get(c); i++) sb.append(c); // !!!!
}
return sb.toString();
}
}
https://leetcode.com/problems/sort-characters-by-frequency/