frequencce
import java.util.*; class Solution { public String frequencySort(String s) { HashMap<Character, Integer> fmap = new HashMap<>(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); fmap.put(ch, fmap.getOrDefault(ch, 0) + 1); } ArrayList<Character> keys = new ArrayList<>(fmap.keySet()); PriorityQueue<Character> pq = new PriorityQueue<>((Character t, Character o) -> { return fmap.get(o) - fmap.get(t); }); for (int i = 0; i < keys.size(); i++) { pq.add(keys.get(i)); } StringBuilder sb = new StringBuilder(); while (pq.size() > 0) { char ch = pq.remove(); int fre = fmap.get(ch); while (fre > 0) { sb.append(ch); fre--; } } return sb.toString(); } }
Leave a Comment