算简单的题,代码有点长
2024-07-29 15:59:46
发布于:浙江
4阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
bool vis[11451419];
int cnt_max(string n){
int a[26] = {0};
int l = n.size();
for(int i = 0;i < l;i++) a[n[i] - 'a']++;
int maxx = -1;
for(int i = 0;i < 26;i++) maxx = max(a[i],maxx);
return maxx;
}
int cnt_min(string n){
int a[26] = {0};
int l = n.size();
for(int i = 0;i < l;i++) a[n[i] - 'a']++;
int minn = 0x3f3f3f3f;
for(int i = 0;i < 26;i++){
if(a[i] == 0) continue;
minn = min(a[i],minn);
}
return minn;
}
bool is_prime(int n){
vis[0] = vis[1] = true;
for(int i = 2;i <= n / i;i++){
if(vis[i] == false){
for(int j = i * 2;j <= n;j += i){
vis[j] = true;
}
}
}
return vis[n];
}
int main(){
string s; cin >> s;
if(!is_prime(cnt_max(s) - cnt_min(s))){
cout << "Lucky Word\n";
cout << cnt_max(s) - cnt_min(s);
}else{
cout << "No Answer\n0";
return 0;
}
return 0;
}
这里空空如也
有帮助,赞一个