introduction
L'Enigma est l'une des premières machines à chiffrer à rotor électromécanique utilisées pendant la Seconde Guerre mondiale. Cela signifie qu’après le codage d’une seule lettre, la clé de la lettre suivante serait modifiée. Les Allemands considéraient cela comme incassable , à cause de l'énorme espace clé. Même forcer brutalement était presque impossible. Cependant, il y avait une erreur de conception dans Enigma. Crypter une lettre ne résulterait jamais en soi. Cela signifie que la lettre Apeut chiffrer toutes les lettres sauf la lettre A.
Prenons un exemple de message codé:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
Un mot typiquement allemand était WETTERBERICHTou la météo en anglais. Avec le principe ci-dessus, nous pouvons déterminer à quels endroits le mot pourrait éventuellement être:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Ce n'est pas possible, car le Ifichier ne peut pas être chiffré pour lui-même, nous passons donc à 1 endroit:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Ce n’est pas non plus possible, nous nous déplaçons à nouveau:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Ceci encore n'est pas possible. En fait, la première occurrence possible de WETTERBERICHTest:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
Donc, nous retournons la position 0-indexée de la première occurrence possible, qui est 13 .
La tâche
- À partir d’un message codé et d’un mot, trouvez l’indice de la première occurrence possible .
- Supposons que seuls les caractères alphabétiques majuscules de base seront utilisés (
ABCDEFGHIJKLMNOPQRSTUVWXYZ). - Si aucune occurrence n'est trouvée, vous pouvez générer un nombre entier négatif , un caractère ou rien (par exemple
-1,X). - Les entrées peuvent être acceptées en tant qu'argument, sur des sauts de ligne distincts, des listes ou toute autre chose.
- C'est du code-golf , donc la soumission avec le moins d'octets gagne!
Cas de test
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
Ene résulterait jamais en un E. C’est l’objet de tout ce défi.