Back to course home
0% completed
Vote For New Content
A readable solution
Prateek Pandey
Oct 19, 2024
StringBuilder result = new StringBuilder(); PriorityQueue<Map.Entry<Character, Integer>> maxHeap = new PriorityQueue<>(((o1, o2) -> o2.getValue() - o1.getValue())); HashMap<Character, Integer> freqMap = new HashMap<>(); for (char c : str.toCharArray()) { freqMap.merge(c, 1, Integer::sum); } maxHeap.addAll(freqMap.entrySet()); while (!maxHeap.isEmpty()){ Map.Entry<Character, Integer> entry = maxHeap.poll(); String repeat = String.valueOf(entry.getKey()).repeat(entry.getValue()); result.append(repeat); } // ToDo: Write Your Code Here. return result.toString(); }
0
0
Comments
Comments
On this page