1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Solution { public: int minDeletions(string s) { int f[26] = {0}; for (char c : s) { ++f[c - 'a']; } sort(f, f + 26, greater()); int res = 0; for (int i = 1; i < 26 && f[i]; ++i) { if (f[i] >= f[i - 1]) { int x = max(0, f[i - 1] - 1); res += f[i] - x; f[i] = x; } } return res; } };
|