的确挺笨的
2026-09-10 21:20:32
发布于:上海
5阅读
0回复
0点赞
人话:判断一个字符串中出现次数最多的字母数量减去出现最少的字母数量是否是一个素数。
先用埃氏筛筛出素数,然后用桶来统计字符出现次数,找出最大和最小的,把它们相减,判断一下是不是素数就行了。
测试数据:

#include<bits/stdc++.h>
using namespace std;
int pri[110],kkk[30],maxn,minn=114513;
void estn(){
for(int i=1;i<=100;i++) pri[i]=1;
pri[1]=0;
for(int i=2;i<=100;i++){
if(pri[i]){
for(int j=2*i;j<=100;j+=i) pri[j]=0;
}
}
}
int main(){
estn();
string s;cin>>s;
s=' '+s;
for(int i=1;i<s.size();i++) kkk[s[i]-'a'+1]++;
for(int i=1;i<=26 ;i++) maxn=max(maxn,kkk[i]);
for(int i=1;i<=26 ;i++) kkk[i]? kkk[i] : kkk[i]=114514;
for(int i=1;i<=26 ;i++) minn=min(minn,kkk[i]);
if(pri[maxn-minn]) cout<<"Lucky Word\n"<<maxn-minn;
else cout<<"No Answer\n0";
}
全部评论 2
dd
5天前 来自 上海
0d d
5天前 来自 上海
0







有帮助,赞一个