Sinopsis: Buscar caracteres encerrados por
MYPOCKET
.
Entrada de ejemplo
MYPHEIF
YFOCKVH
MBNDEIF
TEUFTMY
ESNDUWP
KBOVUVO
CENWFKC
OPYMTEB
Salida de ejemplo
F
BND
EUF
SNDUW
BOVUV
ENWF
¿Eh? ¿Cómo lo conseguimos como salida? El "bolsillo" a veces puede ser difícil de ver. Esto lo hará más claro:
MYP HEIF Y F OCK VH M BND E IF T EUF TMY E SNDUW P K BOVUV O C ENWF KC OPYMTE B
Las letras en negrita indican un anillo de caracteres conectados ortogonalmente entre sí que consiste en la cadena MYPOCKET
repetida una y otra vez. Su programa debería mostrar los caracteres que están dentro de ese anillo.
Notas:
- Solo habrá un "bolsillo".
- Trailing nuevas líneas o espacios después de que se permitan las líneas.
- El resto de la cuadrícula también puede contener caracteres de
MYPOCKET
, pero no de una manera que haga que la forma del anillo sea ambigua. - El
M
no siempre está en la esquina superior derecha. - El "bolsillo" puede moverse en sentido horario o antihorario.
- El "bolsillo" no se moverá en direcciones diagonales, es decir, cada letra está conectada a la izquierda, derecha, arriba o abajo a la siguiente.
Aquí hay otra entrada con la que puede probar su programa.
Entrada de ejemplo
EKCYMOPD
KCOPHAYM
EKNDSEST
JETHACKE
KRMYPOBN
Salida de ejemplo
HA
NDSES
HA
Respuestas:
Perl 5, 414
Uso: guardar como pocket.pl y ejecutar con:
Fui por una función recursiva para forzar el camino con fuerza bruta, que podría no haber sido el mejor, pero fue el primer enfoque que consideré.
Si bien funciona para los dos casos de prueba actuales, hay algunas advertencias:
Quiero seguir trabajando en esto, ¡pero quería mostrar que hay interés en la pregunta! Feliz de documentar mi proceso si es útil.
fuente
Python 2.7
571542509Funciona como un programa (contando con una función recursiva) y aceptando aportes de stdin.
Demostración aquí.
Probándolo (
ex1.txt
yex2.txt
son los ejemplos de la pregunta):Versión sin golf con comentarios:
Avíseme si hice algo estúpido o algo se puede hacer mejor.
Sé que es muy largo, pero es lo mejor que puedo hacer: P
fuente