Dado un texto rectangular como un rompecabezas de búsqueda de palabras y una cadena de búsqueda, determine si el texto contiene la cadena de búsqueda. La cadena de búsqueda puede aparecer:
- horizontal, vertical o diagonal
- hacia adelante o hacia atrás
Puede escribir una función o un programa y tomar dos cadenas como entrada a través del argumento de la función, ARGV o STDIN. La salida debe ser un resultado verdadero o falso que puede ser devuelto desde la función o escrito en STDOUT.
Suponga que el texto contendrá caracteres ASCII imprimibles arbitrarios (códigos hexadecimales 20 a 7E) y caracteres de salto de línea. Las letras distinguen entre mayúsculas y minúsculas. Puede suponer que el texto de entrada es rectangular, es decir, todas las líneas tienen la misma longitud. Puede saber si la entrada termina con una nueva línea final o no (si es importante para su envío).
Este es el código de golf, gana la respuesta más corta (en bytes).
Ejemplos
Usando esta cuadrícula del artículo de Wikipedia sobre búsquedas de palabras como la primera entrada:
WVERTICALL
ROOAFFLSAB
ACRILIATOA
NDODKONWDC
DRKESOODDK
OEEPZEGLIW
MSIIHOAERA
ALRKRRIRER
KODIDEDRCD
HELWSLEUTH
las siguientes cadenas de búsqueda deberían arrojar resultados verdaderos o falsos, respectivamente:
Truthy: RANDOM, VERTICAL, HORIZONTAL, WORDSEARCH, WIKIPEDIA, TAIL
Falsy: WordSearch, CODEGOLF, UNICORN
Alternativamente, usando este texto de entrada
Lorem ipsum dolor sit amet consectetu
r adipisicing elit sed do eiusmod tem
por incididunt ut labore et dolore ma
gna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco lab
oris nisi ut aliquip ex ea commodo co
nsequat. Duis aute irure dolor in rep
rehenderit in voluptate velit esse ci
llum dolore eu fugiat nulla pariatur.
Obtenemos los siguientes resultados de búsqueda (usando comillas ahora, porque hay espacios en algunas cadenas de búsqueda):
Truthy: "Lorem", "mine", "uma bop", "tuetdod", "snol,a", "texas", "pii.d v", "vexta"
Falsy: "lorem", "wordsearch", "pii.d v", "mute"