题解|笨小猴
2026-09-05 15:56:38
发布于:广东
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int cnt[26],maxn,minn=100,num;
//cnt记录每个字母出现的次数, s.size()最大为100所以将minn初始化为100
string s;//保存输入的单词
bool flag;//记录字符串s是否为Lucky Word 1是 0否
//判断质数的函数
bool prime(int n){
if(n==1||n==0)return 0;
for(int i=2;i*i<=n;i++){
if(n%i==0)return 0;
}
return 1;
}
int main(){
cin>>s;
for(int i=0;i<s.size();i++){
cnt[s[i]-'a']++;
//统计每个字母的出现次数, cnt[i]统计第i-1个字母的数量
}
for(int i=0;i<26;i++){
//找出出现次数最多和最少的字母, 将出现次数分别存储在maxn和minn内
if(cnt[i]<minn&&cnt[i]!=0)minn=cnt[i];
//注意不统计出现次数为0的字母, 因为该字母没有出现在该单词中
if(cnt[i]>maxn)maxn=cnt[i];
}
num=maxn-minn;//num存储maxn和minn的差
flag=prime(num);//更新flag
//输出结果, 注意flag=0时输出0, 别问我是怎么知道的
if(flag)cout<<"Lucky Word\n"<<num;
else cout<<"No Answer\n0";
return 0;
}
这里空空如也







有帮助,赞一个