Re: [閒聊] 每日LeetCode已回收
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
推
02/07 10:38,
1年前
, 1F
02/07 10:38, 1F
推
02/07 10:46,
1年前
, 2F
02/07 10:46, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 656 之 719 篇):