Minimum Deletions to Make Character Frequencies Unique LeetCode solution in Python

1
class Solution:
2
def minDeletions(self, s: str) -> int:
3
# Get the frequency of each character sorted in reverse order
4
frequencies = sorted(Counter(s).values(), reverse=True)
5

6
total_deletions = 0
7
next_unused_freq = len(s)
8
for freq in frequencies:
9
# It is impossible for the frequency to be higher
10
next_unused_freq = min(next_unused_freq, freq)
11
total_deletions += freq - next_unused_freq
12

13
# We cannot have another character with this frequency,
14
# so decrement next_unused_freq
15
if next_unused_freq > 0:
16
next_unused_freq -= 1
17

18
return total_deletions

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0