A14.笨小猴
2025-05-19 21:41:54
发布于:广东
1阅读
0回复
0点赞
非常常规的做法
#include<bits/stdc++.h> //万能头
#define uint unsigned int
#define Inf 0x7fffffff - 1 //2147483646 INT_MAX - 1
using namespace std;
string ltr = "qwertyuiopasdfghjklzxcvbnm"; //26个小写字母
char a[105];
int maxn = -Inf, minn = Inf; //初始化
bool isP(unsigned int n){ //素数判定
if(n == 0 || n == 1) return false;
for(uint i = 2;i < n;i++){ //1和n不需要
for(uint j = 2;j < n;j++){
if(i * j == n) return false;
}
}return true;
}int main(){
fgets(a, 105, stdin); //遇到回车以\0结束
for(uint i = 0;i < 26;i++){
int cnt = 0; //一定要初始化!!!
for(uint j = 0;j < strlen(a);j++) if(ltr[i] == a[j]) cnt++; //遍历输入字符串,查找并计数相同字符数
if(!cnt) continue; //为0时没有相同字符,跳过
if(cnt >= maxn) maxn = cnt; //更新最大值和最小值
if(cnt <= minn) minn = cnt;
}switch(isP(maxn - minn)){ //if(isP(maxn-minn)){ cout<<"Lucky Word\n"; cout<<maxn - minn;}
case 0: cout<<"No Answer\n"<<0; break; //else cout<<0;
case 1: cout<<"Lucky Word\n"<<maxn - minn; break;
}return 0;
}
这里空空如也
有帮助,赞一个