题目连接:http://www.rqnoj.cn/Problem_399.html
解题思路:对字符串中出现的字符逐一统计,找到最大值和最小值。
#include <stdio.h>
#include <string.h>
const int N = 105;
const int M = 26;
bool isPrime(int cur) {
for (int i = 2; i < cur; i++)
if (cur % i == 0)
return false;
if (cur < 2)
return false;
return true;
}
int main() {
char word[N];
int cnt[M];
while (gets(word)) {
memset(cnt, 0, sizeof(cnt));
int len = strlen(word);
for (int i = 0; i < len; i++)
cnt[word[i] - 'a']++;
int min = N, max = 0;
for (int i = 0; i < M; i++) {
if (cnt[i] && cnt[i] < min)
min = cnt[i];
if (cnt[i] > max)
max = cnt[i];
}
if(isPrime(max - min))
printf("Lucky Word\n%d\n", max - min);
else
printf("No Answer\n0\n");
}
return 0;
}