#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int minDeletions( string s) {
int i;
int res = 0 ;
int f[ 26 ] = { } ;
for ( i= ( 0 ) ; i< ( s.size ( ) ) ; i++ ) {
f[ s[ i] - 'a' ] ++ ;
}
sort( f, f+ 26 ) ;
for ( ;; ) {
for ( i= ( 0 ) ; i< ( 25 ) ; i++ ) {
if ( f[ i] && f[ i] == f[ i+ 1 ] ) {
f[ i] -- ;
res++ ;
goto Q5VJL1cS;
}
}
break ;
Q5VJL1cS:;
}
return res;
}
}
;
// cLay varsion 20201102-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int minDeletions(string s) {
// int res = 0, f[26] = {};
// rep(i,s.size()) f[s[i]-'a']++;
// sort(f, f+26);
// for(;;){
// rep(i,25) if(f[i] && f[i]==f[i+1]) f[i]--, res++, break_continue;
// break;
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIGludCBtaW5EZWxldGlvbnMoc3RyaW5nIHMpewogICAgaW50IGk7CiAgICBpbnQgcmVzID0gMDsKICAgIGludCBmWzI2XSA9IHt9OwogICAgZm9yKGk9KDApO2k8KHMuc2l6ZSgpKTtpKyspewogICAgICBmW3NbaV0tJ2EnXSsrOwogICAgfQogICAgc29ydChmLCBmKzI2KTsKICAgIGZvcig7Oyl7CiAgICAgIGZvcihpPSgwKTtpPCgyNSk7aSsrKXsKICAgICAgICBpZihmW2ldICYmIGZbaV09PWZbaSsxXSl7CiAgICAgICAgICBmW2ldLS07CiAgICAgICAgICByZXMrKzsKICAgICAgICAgIGdvdG8gUTVWSkwxY1M7CiAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICAgICBRNVZKTDFjUzo7CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDIwMTEwMi0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGludCBtaW5EZWxldGlvbnMoc3RyaW5nIHMpIHsKLy8gICAgIGludCByZXMgPSAwLCBmWzI2XSA9IHt9OwovLyAgICAgcmVwKGkscy5zaXplKCkpIGZbc1tpXS0nYSddKys7Ci8vICAgICBzb3J0KGYsIGYrMjYpOwovLyAgICAgZm9yKDs7KXsKLy8gICAgICAgcmVwKGksMjUpIGlmKGZbaV0gJiYgZltpXT09ZltpKzFdKSBmW2ldLS0sIHJlcysrLCBicmVha19jb250aW51ZTsKLy8gICAgICAgYnJlYWs7Ci8vICAgICB9Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK