congr / world

2 stars 1 forks source link

LeetCode : 451. Sort Characters By Frequency #514

Closed congr closed 5 years ago

congr commented 5 years ago

https://leetcode.com/problems/sort-characters-by-frequency/

image

congr commented 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();
    }
}