不知道为啥只有50%AC,我看了下题解跟第一篇题解思路差不多啊,除了我没打表以外。
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int maxn = 0, minn = 100;
int[] alphabet = new int[26]; // 存放每个字母出现次数
char[] word = str.toCharArray();
for (char c : word) {
int x = c - 'a';
alphabet[x]++;
}
for (int i = 0; i < 26; i++) {
if (alphabet[i] > maxn) maxn = alphabet[i];
if (alphabet[i] < minn && alphabet[i] != 0) minn = alphabet[i];
}
int y = maxn - minn;
if (y == 2){
System.out.println("Luck Word");
System.out.println(y);
}else if (y <= 1) {
System.out.println("No Answer");
System.out.println(0);
return;
}
for (int i = 2; i <= Math.sqrt(y); i++) {
if (y % i == 0){
System.out.println("No Answer");
System.out.println(0);
return;
}
}
System.out.println("Luck Word");
System.out.println(y);
}
}