Учитывая прямоугольный текст как загадку поиска слова и строку поиска, определите, содержит ли текст строку поиска. Поисковая строка может появиться:
- горизонтально, вертикально или по диагонали
- вперед или назад
Вы можете написать функцию или программу и взять две строки в качестве входных данных через аргумент функции, ARGV или STDIN. Вывод должен быть верным или ложным результатом, который можно либо вернуть из функции, либо записать в STDOUT.
Предположим, что текст будет содержать произвольные печатаемые символы ASCII (шестнадцатеричные коды от 20 до 7E) и символы разрыва строки. Буквы чувствительны к регистру. Вы можете предположить, что входной текст является прямоугольным, то есть все строки имеют одинаковую длину. Вы можете указать, заканчивается ли ввод завершающим переводом строки (если это важно для вашего представления).
Это код гольф, самый короткий ответ (в байтах) выигрывает.
Примеры
Используя эту сетку из статьи Википедии о поиске слов в качестве первого ввода:
WVERTICALL
ROOAFFLSAB
ACRILIATOA
NDODKONWDC
DRKESOODDK
OEEPZEGLIW
MSIIHOAERA
ALRKRRIRER
KODIDEDRCD
HELWSLEUTH
Следующие строки поиска должны давать правдивые или ложные результаты соответственно:
Truthy: RANDOM, VERTICAL, HORIZONTAL, WORDSEARCH, WIKIPEDIA, TAIL
Falsy: WordSearch, CODEGOLF, UNICORN
В качестве альтернативы, используя этот входной текст
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.
Мы получаем следующие результаты поиска (используя кавычки, потому что в некоторых строках поиска есть пробелы):
Truthy: "Lorem", "mine", "uma bop", "tuetdod", "snol,a", "texas", "pii.d v", "vexta"
Falsy: "lorem", "wordsearch", "pii.d v", "mute"