He estado haciendo búsquedas de palabras hace poco, y pensé que sería así mucho más fácil si todas las palabras se leen de izquierda a derecha. ¡Pero reescribir todas las líneas requiere mucho esfuerzo! Así que estoy reclutando golfistas de código para ayudar.
(Descargo de responsabilidad: la historia anterior puede ser remotamente precisa o no).
Su código tomará una cuadrícula rectangular y generará todas las líneas a través de ella en ambas direcciones.
La salida debe contener las 8 rotaciones de la cuadrícula (cardinales y diagonales principales), 'leer' de arriba a abajo, de izquierda a derecha. (Esto significa que cada "fila" se duplicará, una vez hacia adelante y otra hacia atrás).
Las divisiones de línea pueden ser un espacio o un salto de línea. Si elige espacios, las divisiones de rotación de la cuadrícula deben ser saltos de línea; de lo contrario, las divisiones de rotación de la cuadrícula deben ser dos saltos de línea.
Entrada de ejemplo (tomada como una matriz de caracteres, cadena multilínea u otro formato razonable)
ABCDE
FGHIJ
KLMNO
PQRST
Ejemplo de salida (usando la primera opción para divisiones)
ABCDE FGHIJ KLMNO PQRST
E DJ CIO BHNT AGMS FLR KQ P
EJOT DINS CHMR BGLQ AFKP
T OS JNR EIMQ DHLP CGK BF A
TSRQP ONMLK JIHGF EDBCA
P QK RLF SMGA TNHB OIC JD E
PKFA QLGB RMHC SNID TOJE
A FB KGC PLHD QMIE RNJ SO T
El orden de las rotaciones "leídas" no importa siempre y cuando los ocho cardenales e intercardinales primarios se realicen una vez.
Este es el código de golf , por lo que gana el código más corto. Se aplican lagunas estándar.
fuente
Respuestas:
Python 3, 181 bytes
Explicación
Resultados
con una salida más limpia (189 bytes)
.
fuente
MATL , 40 bytes
La entrada es una matriz de caracteres 2D en notación Matlab:
La salida contiene cada "palabra" en una línea separada.
Pruébalo en línea!
fuente