Synopsis: recherchez les caractères entourés par
MYPOCKET
.
Exemple d'entrée
MYPHEIF
YFOCKVH
MBNDEIF
TEUFTMY
ESNDUWP
KBOVUVO
CENWFKC
OPYMTEB
Exemple de sortie
F
BND
EUF
SNDUW
BOVUV
ENWF
Hein? Comment avons-nous obtenu cela en sortie? La "poche" peut parfois être difficile à voir. Cela rendra plus clair:
MYP HEIF Y F OCK VH M BND E IF T EUF TMY E SNDUW P K BOVUV O C ENWF KC OPYMTE B
Les lettres en gras indiquent un anneau de caractères connectés orthogonalement les uns aux autres, composé de la chaîne MYPOCKET
répétée encore et encore. Votre programme devrait sortir les caractères qui se trouvent dans cet anneau.
Remarques:
- Il n'y aura qu'une "poche".
- Les nouvelles lignes ou espaces de fin après les lignes sont autorisés.
- Le reste de la grille peut également contenir des caractères de
MYPOCKET
, mais pas d'une manière qui rend ambiguë la forme de l'anneau. - le
M
n'est pas toujours dans le coin supérieur droit. - La «poche» peut se déplacer dans le sens horaire ou antihoraire.
- La "poche" ne se déplacera pas dans les directions diagonales - c'est-à-dire que chaque lettre est connectée à gauche, à droite, en haut ou en bas à la suivante.
Voici une autre entrée avec laquelle vous pouvez tester votre programme.
Exemple d'entrée
EKCYMOPD
KCOPHAYM
EKNDSEST
JETHACKE
KRMYPOBN
Exemple de sortie
HA
NDSES
HA
Réponses:
Perl 5, 414
Utilisation: enregistrez sous pocket.pl et exécutez avec:
J'ai opté pour une fonction récursive pour forcer brutalement le chemin, ce qui n'était peut-être pas le meilleur, mais c'était la première approche que j'ai envisagée.
Bien que cela fonctionne pour les deux cas de test actuels, il y a quelques mises en garde:
Je veux continuer à travailler là-dessus, mais je voulais montrer qu'il y a un intérêt pour la question! Heureux de documenter mon processus si utile.
la source
Python 2.7
571542509Fonctionne comme un programme (mise sur une fonction récursive) et accepte les entrées de stdin.
Démo ici.
Le tester (
ex1.txt
etex2.txt
sont les exemples de la question) -Version non golfée avec commentaires -
Faites-moi savoir si j'ai fait quelque chose de stupide ou si quelque chose peut être mieux fait.
Je sais que c'est long, mais c'est le mieux que je puisse faire: P
la source