Biorąc pod uwagę prostokątny tekst jako łamigłówkę wyszukiwania słów i ciąg wyszukiwania, określ, czy tekst zawiera szukany ciąg. Wyszukiwany ciąg może się pojawić:
- poziomo, pionowo lub po przekątnej
- do przodu lub do tyłu
Możesz napisać funkcję lub program i wziąć dwa ciągi wejściowe za pomocą argumentu funkcji, ARGV lub STDIN. Wynik powinien być wynikiem zgodnym z prawdą lub fałszem, który może zostać zwrócony z funkcji lub zapisany w STDOUT.
Załóżmy, że tekst będzie zawierał dowolne drukowalne znaki ASCII (kody szesnastkowe od 20 do 7E) i znaki podziału linii. W literach rozróżniana jest wielkość liter. Możesz założyć, że tekst wejściowy jest prostokątny, tzn. Wszystkie linie mają tę samą długość. Możesz określić, czy dane wejściowe kończą się znakiem nowej linii, czy nie (jeśli ma to znaczenie dla przesłania).
To jest kod golfowy, wygrywa najkrótsza odpowiedź (w bajtach).
Przykłady
Używając tej siatki z artykułu Wikipedii na temat wyszukiwania słów jako pierwszego wejścia:
WVERTICALL
ROOAFFLSAB
ACRILIATOA
NDODKONWDC
DRKESOODDK
OEEPZEGLIW
MSIIHOAERA
ALRKRRIRER
KODIDEDRCD
HELWSLEUTH
następujące ciągi wyszukiwania powinny dawać odpowiednio wyniki zgodne z prawdą lub fałszem:
Truthy: RANDOM, VERTICAL, HORIZONTAL, WORDSEARCH, WIKIPEDIA, TAIL
Falsy: WordSearch, CODEGOLF, UNICORN
Alternatywnie, używając tego tekstu wejściowego
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.
Otrzymujemy następujące wyniki wyszukiwania (teraz używamy cudzysłowów, ponieważ w niektórych ciągach wyszukiwania są spacje):
Truthy: "Lorem", "mine", "uma bop", "tuetdod", "snol,a", "texas", "pii.d v", "vexta"
Falsy: "lorem", "wordsearch", "pii.d v", "mute"