http://oj.ecustacm.cn/problem.php?id=1377
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{
string str;
int a[26];
int i;
while(cin>>str)
{
fill(a,a+26,0);//初始化
for(i=0;i<str.length();i++)
{
a[str[i]-'a']++;
}
sort(a,a+26);//数组已经有序了
for(i=0;i<26;i++)
{
if(a[i]!=0)//找到最小的
break;
}
printf("%d\n",a[25]-a[i]);
}
return 0;
}
简化一下:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{
string str;
int a[26];
int i;
while(cin>>str)
{
fill(a,a+26,0);//初始化
for(i=0;i<str.length();i++)
{
a[str[i]-'a']++;
}
sort(a,a+26);//数组已经有序了
i=0;
while(a[i]==0) i++;
printf("%d\n",a[25]-a[i]);
}
return 0;
}