451. Sort Characters By Frequency
Given a string s, sort it in decreasing order based on the frequency of characters, and return the sorted string.
class Solution { public String frequencySort(String s) { Map<Character, Integer> cm = new HashMap(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); int count = cm.getOrDefault(c, 0) + 1; cm.put(c, count); } List<Character> keyList = new ArrayList(cm.keySet()); Collections.sort(keyList, (a,b) -> cm.get(b) - cm.get(a)); StringBuilder sb = new StringBuilder(); for (Character c : keyList) { int freq = cm.get(c); for (int i = 0; i < freq; i++) { sb.append(c); } } return sb.toString(); } }
|