LeetCode 筆記 - 1647. Minimum Deletions to Make Character Frequencies

要求透過最少刪除次數,讓字串中每個字母的出現頻率各不相同。解題思路聚焦於統計頻率後,動態降低重複出現的頻率值,直到找到唯一的空位。這是一篇關於資料統計、集合過濾與動態調整邏輯的實戰分享。

發佈
閱讀
約 1 分鐘
字數
238
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。

題目在此 1647. Minimum Deletions to Make Character Frequencies

給定一個字串,每次你可以自由地刪除一個字元
請給出讓每個字母頻率都不一樣的最小刪除次數

解題思維

這題沒有用到什麼特別的演算法

就是計算出每個字母的頻率!
如果這個頻率已經出現過了,那就讓頻率降到沒有出現過的數字
直到整個字串都做完一次

程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
def minDeletions(self, s: str) -> int:

count = collections.defaultdict(int)

for c in s:
count[c] += 1

result = 0

check = set()
for c in count:
freq = count[c]

while freq in check and freq > 0:
freq -= 1
result += 1

check.add(freq)

return result

也許你也會想看看

輸入關鍵字開始搜尋 · ↑↓ 選擇 · Enter 開啟