精華區beta Marginalman 關於我們 聯絡資訊
https://leetcode.com/problems/sort-characters-by-frequency/description 451. Sort Characters By Frequency 給你一個字串s,把他的所有字元依照出現次數降序排列,如果答案有多個返回任意一個 思路: 1.先數s的每個字元有幾個 2.把s數量大於0的字元(計數索引)丟到MaxHeap依照數量排序 3.不斷從Heap取出字元並append成一個字串即可 Java Code: -------------------------------------------- class Solution { public String frequencySort(String s) { int[] count = new int[252]; for (char c : s.toCharArray()) { count[c]++; } PriorityQueue<Integer> heap = new PriorityQueue<>((a, b) -> count[b] - count[a]); for (int i = 0; i < count.length; i++) { if (count[i] > 0) { heap.offer(i); } } StringBuilder sb = new StringBuilder(); while (!heap.isEmpty()) { int idx = heap.poll(); char ch = (char)(idx); for (int i = 0; i < count[idx]; i++) { sb.append(ch); } } return sb.toString(); } } -------------------------------------------- -- https://i.imgur.com/hhXzZJ3.jpg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.73.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1707273300.A.E5B.html
JIWP: 大師 02/07 10:38
wu10200512: 大師 02/07 10:46