Introducción
El Enigma fue una de las primeras máquinas de cifrado de rotor electromecánico utilizadas en la Segunda Guerra Mundial. Eso significa que después de que se codifica una sola letra, cambiaría la clave para la siguiente letra. Esto fue considerado irrompible por los alemanes, debido al enorme espacio clave. Incluso la fuerza bruta era casi imposible. Sin embargo, hubo un error de diseño en el Enigma. Cifrar una carta nunca resultaría en sí mismo. Eso significa que la letra A
puede cifrarse en cada letra, excepto la letra A
.
Tomemos un ejemplo de un mensaje codificado:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
Una palabra típica alemana era WETTERBERICHT
, o informe meteorológico en inglés. Con el principio anterior, podemos determinar en qué lugares la palabra podría ser:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Esto no es posible, porque I
no se puede cifrar a sí mismo, por lo que nos movemos en 1 lugar:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Esto tampoco es posible, así que nos mudamos de nuevo a otro lugar:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Esto nuevamente no es posible. De hecho, la primera posible aparición de WETTERBERICHT
es:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
Entonces, devolvemos la posición indexada a 0 de la primera ocurrencia posible, que es 13 .
La tarea
- Dado un mensaje codificado y una palabra, encuentre el índice de la primera ocurrencia posible .
- Suponga que solo se usarán caracteres alfabéticos en mayúsculas básicos (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
). - Si no se encuentra ninguna ocurrencia, puede generar cualquier número entero negativo , carácter o nada (por ejemplo
-1
,X
). - La entrada puede aceptarse como argumento, en líneas nuevas separadas, listas o cualquier otra cosa.
- Este es el código de golf , por lo que gana el envío con la menor cantidad de bytes.
Casos de prueba
Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13
Input: ABCDEFGHIJKL, HELLO
Output: 0
Input: EEEEEEEEEEEE, HELLO
Output: -1
Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11
Input: HKKH, JJJJJ
Output: -1
E
nunca resultaría en un E
. De eso se trata todo este desafío.