File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 1+ package Top_K_Elements ;
2+
3+ // Problem Statement: Frequency Sort (medium)
4+ // LeetCode Question: 451. Sort Characters By Frequency
5+
6+ import java .util .HashMap ;
7+ import java .util .Map ;
8+ import java .util .PriorityQueue ;
9+
10+ public class Problem_6_Frequency_Sort {
11+ public String sortCharacterByFrequency (String str ) {
12+
13+ Map <Character , Integer > characterFrequencyMap = new HashMap <>();
14+ for (char chr : str .toCharArray ()) {
15+ characterFrequencyMap .put (chr , characterFrequencyMap .getOrDefault (chr , 0 ) + 1 );
16+ }
17+
18+ PriorityQueue <Map .Entry <Character , Integer >> maxHeap =
19+ new PriorityQueue <Map .Entry <Character , Integer >>(
20+ (e1 , e2 ) -> e2 .getValue () - e1 .getValue ());
21+
22+ maxHeap .addAll (characterFrequencyMap .entrySet ());
23+
24+ StringBuilder sortedString = new StringBuilder (str .length ());
25+ while (!maxHeap .isEmpty ()) {
26+ Map .Entry <Character , Integer > entry = maxHeap .poll ();
27+ for (int i = 0 ; i < entry .getValue (); i ++)
28+ sortedString .append (entry .getKey ());
29+ }
30+ return sortedString .toString ();
31+ }
32+ }
You can’t perform that action at this time.
0 commit comments