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

題目在此 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

也許你也會想看看