Here is the solution:
function minDeletions(s)
count := frequency map
freqs := sorted list of frequencies descending
used := set
deletions := 0
for f in freqs
while f > 0 and f in used
f := f - 1
deletions := deletions + 1
if f > 0 then
used.add(f)
return deletions
Time: where is alphabet size. Space: .
Process from highest frequency down. Each frequency is reduced until unique or gone.