P1125 [Grupo de mejora NOIP2008] Stupid Monkey (Java)

[Grupo de mejora NOIP2008] Mono estúpido

Enlace al tema: https://www.luogu.com.cn/problem/P1125

Descripción del Título

El estúpido mono tiene un vocabulario reducido, así que cada vez que hace preguntas de opción múltiple en inglés, le duele la cabeza. Pero encontró una manera, y el experimento demostró que cuando se usa este método para elegir la opción, ¡la posibilidad de elegir la opción correcta es muy alta!

La descripción específica de este método es la siguiente: suponga que maxn es el número de ocurrencias de la letra con más ocurrencias en una palabra, minn es el número de ocurrencias de la letra con menos ocurrencias en la palabra, si maxn-minn es un número primo, entonces el estúpido mono piensa que esto es una palabra de la suerte, y tal palabra es probablemente la respuesta correcta.

Formato de entrada

Una palabra en la que solo pueden aparecer letras minúsculas y la longitud es inferior a 100.

Formato de salida

Hay dos líneas. La primera línea es una cadena. Si la palabra de entrada es Lucky Word, entonces envíe "Lucky Word", de lo contrario, muestre "Sin respuesta";

La segunda línea es un número entero. Si la palabra de entrada es Lucky Word, genera el valor de maxn-minn, de lo contrario, genera 0.

Entrada y salida de muestra

Ingrese # 1

error

Salida # 1

Palabra de suerte
2

Entrada n. ° 2

olímpico

Salida # 2

Sin respuesta
0

Instrucciones / consejos

[Explicación del ejemplo de entrada y salida 1]

La letra r con más ocurrencias en la palabra error aparece 3 veces y la letra con menos ocurrencias aparece una vez, 3−1 = 2, y 2 es un número primo.

[Explicación de la muestra de entrada y salida 2]

La letra i con más ocurrencias en la palabra olympic aparece una vez y la letra con menos ocurrencias aparece una vez, 1−1 = 0, 0 no es un número primo.

Ideas de resolución de problemas:

Enumere 26 letras de la a a la z, determine si la letra ha aparecido, compare el número de veces que ha aparecido cada letra y encuentre el máximo y el mínimo.

el código se muestra a continuación:

import java.util.Scanner;

public class Main {
    
    
	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		int max = -1, min = 99999;
		int[] a = new int[105];
		for (int i = 0; i < s.length(); i++) {
    
    
			a[s.charAt(i) - 'a']++;
		}
		for (int i = 0; i < 26; i++) {
    
    
			if (max < a[i])
				max = a[i];
			if (min > a[i] && a[i] != 0)
				min = a[i];
		}
		int t = max - min;
		boolean bl = true;
		for (int i = 2; i < t; i++) {
    
    
			if (t % i == 0) {
    
    
				bl = false;
				break;
			}
		}
		if (bl && t >= 2) {
    
    
			System.out.println("Lucky Word");
			System.out.println(t);
		} else {
    
    
			System.out.println("No Answer");
			System.out.println(0);
		}
	}
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45894701/article/details/114549475
Recomendado
Clasificación