解题思路:
1.由题可得,输入一个只包含字母的字符串,那么用string str 来表示,判断里面字母出现最多的次数和最少的次数,max和min
2.如何判断次数呢?可以利用两个for循环来判断,如果相等,则计数器增加,每判断完一个字母,更新max和min的值,枚举下一个字母前,计数器清零
3.设置一个判断质数的函数,对于max-min的结果进行判断,注意对于0和1的判断
#include<bits/stdc++.h>
using namespace std;
void print(int a)
{
if(a==0||a==1)//如果结果是0或者1
{
cout<<"No Answer"<<endl;
cout<<0;
return ;
}//输出no answer ,结束程序
for(int i=2;i<=a-1;i++)//否则,判断是否为质数
{
if(a%i==0)//如果不是质数
{
cout<<"No Answer"<<endl;//输出no answer,0
cout<<0;
return ;//结束程序
}
}
cout<<"Lucky Word"<<endl;//如果是质数,输出lucky word 和a
cout<<a;
}
int main()
{
string str;
int max=0;
int min=99999999;
cin>>str;
for(int i=0;i<=str.length()-1;i++)//依次枚举每一个字符
{
int sum=0;//计数器归零
for(int j=0;j<=str.length()-1;j++)//依次枚举每一个字符
{
if(str[i]==str[j])//如果相等,计数器加1
sum++;
}
if(sum>max)//如果出现次数大于max,则更新max
max=sum;
if(sum<min)//如果出现次数小于min,则更新min
min=sum;
}
print(max-min);//执行print函数
return 0;
}