java运行时间 100% √,代码加了注释
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
// 数组模拟哈希表,下标0~25 对应26个英文字母
int[] hashTable = new int[26];
// 统计字母出现频率
for (int i = 0; i < str.length(); i++) {
hashTable[str.charAt(i) - 'a']++;
}
// 遍历数组,寻找单词中频率最高和最低的字母出现的次数
int maxn = -1, minn = 101;
for (int i = 0; i < hashTable.length; i++) {
if (hashTable[i] > maxn) {
maxn = hashTable[i];
}
if (hashTable[i] != 0 && hashTable[i] < minn) {
minn = hashTable[i];
}
}
// 根据题目的逻辑进行判断
if (isNum(maxn - minn)) {
System.out.println("Lucky Word");
System.out.println(maxn - minn);
} else {
System.out.println("No Answer");
System.out.println(0);
}
}
// 判断一个数是否为质数
public static boolean isNum(int n) {
if (n == 1 || n == 0) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % 2 == 0) {
return false;
}
}
return true;
}
}

京公网安备 11010502036488号