1 条题解

  • 1
    @ 2023-10-31 13:54:22

    题目梗概

    给出一个字符串,求最多出现的字母的次数 max 与最少字母的次数之差min是否为质数,如果是的话,那就输出Lucky Wordmax-min;否则输出No Answer0.

    思路

    先求出maxmaxminmin的差,再相减判断质数

    代码实现

    using namespace std;
    string s;
    int a[55],maxx,minn=0x7f;
    bool zs(int x)  //判断质数
    {
    	if(x<=1) return false;
    	for(int i=2;i<=sqrt(x);i++)
    		if(x%i==0) return false;
    	return true;
    }
    int main(){	
    	cin>>s;
    	for(int i=0;i<s.size();i++)
    	{
    		a[s[i]-'a'+1]++;
    	}
    	for(int i=1;i<=26;i++)
    	{
    		if(a[i]!=0) maxx=max(maxx,a[i]),minn=min(minn,a[i]);
    	}
    	if(zs(maxx-minn))
    		cout<<"Lucky Word"<<'\n'<<maxx-minn;
    	else
    		cout<<"No Answer"<<'\n'<<0;
    	return 0;
    }
    

    信息

    ID
    109
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者