Tema del lenguaje C en ACM: reemplazo de contraseña
Respuesta: Quiere que descifres el código. Este es un cifrado de turno típico.
El método de cifrado es: mensaje secreto = (texto sin formato + clave)%26
Por supuesto, tanto el mensaje secreto como el texto sin formato están representados por números.
Podemos suponer que A corresponde al número 1, B corresponde al número 2, y así sucesivamente.
En consecuencia, tenemos un método de descifrado: letras de texto plano = (letras secretas - clave)%26
En este caso, según el significado de la pregunta, siempre que necesitemos intentar Con cada clave, el texto cifrado se puede descifrar.
Evidentemente, sólo hay 26 claves posibles del 0 al 25.
Según el significado de la pregunta, prueba estas 26 posibilidades con fuerza bruta. La clave correcta obtendrá el texto claro "¿El ágil zorro marrón saltó sobre el perro perezoso?".
Entonces la idea podría ser:
Intentar usar la clave para descifrar el texto cifrado y obtener el texto sin formato correspondiente. Si hay una oración en el texto sin formato "¿El ágil zorro marrón saltó sobre el perro perezoso?", Entonces la clave correspondiente es la clave real; de lo contrario, intente con la siguiente clave.
"La memoria limitada de esta pregunta es de solo 1 MB y el tiempo es de 1 segundo, así que preste atención a la eficiencia del algoritmo, gracias".
En cuanto a la eficiencia , no necesitas preocuparte. Sólo hay 26 posibilidades para la clave de la pregunta, por lo que no tienes que preocuparte por el tiempo de espera si usas la fuerza bruta para descifrarla.