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; } }