Wyzwanie
Utwórz funkcję przyjmuje dwie dwuwymiarowe tablice Znaków (lub Ciągów, jeśli język programowania nie ma znaków jako typu danych) jako danych wejściowych: a i b. Jeśli twój język nie obsługuje tych danych wejściowych, możesz użyć innej standardowej zmiennej jednobajtowej.
Twoim zadaniem jest ustalenie, czy b zawiera a. Jeśli tak jest, zwróć wartość true. W przeciwnym razie zwróć false.
Przykładowe przypadki testowe
a:
123
456
789
b:
123
456
789
powinien zwrócić true.
a:
code
golf
b:
thisis
code!!
golf!!
ohyeah
powinien zwrócić true.
a:
abcd
efgh
ijkl
b:
abcdef
ghijkl
mnopqr
powinien zwrócić wartość false.
a:
abc
def
b:
1abc2
3def4
5ghi6
powinien zwrócić true
a:
ab
cd
b:
#ab##
##cd#
powinien zwrócić wartość false
Najmniej bajtów wygrywa.
a
nieb
ma lewej krawędzi, oraz przypadek testowy falsey, w którym każda liniaa
pojawia się w kolejnych liniach,b
ale z lewą krawędzią przesuniętą naprzemiennie?Odpowiedzi:
Brachylog (v2), 4 bajty
Wypróbuj online!
Najłatwiej uruchomić w pełnym programie, jak zwykle o decyzji problemu , z określony jako argument wiersza polecenia, b na standardowe wejście. Pytanie pyta o funkcję, a program działa również jako funkcja, b po lewej, a po prawej, a wyjście generuje wyjątek wtedy i tylko wtedy, gdy decyzja jest fałszywa .
Wyjaśnienie
„Twierdzenie prostokątne” jest oczywiście bezcelowe, ponieważ pytanie to już gwarantuje. Reszta programu wykonuje dla nas wyszukiwanie siatki, identyfikując podłańcuch wierszy i kolumn, tj. Submatrix.
Meta-dyskusja
Wcześniej mieliśmy bardzo podobne pytanie ; Spodziewałbym się, że większość odpowiedzi na jedno pytanie można zmienić na odpowiedzi na drugie. Myślę jednak, że jest to bardziej przyjemna wersja.
źródło
Python 2 , 67 bajtów
Wypróbuj online!
Pobiera dane wejściowe jako listy krotek znaków.
Próbuje wszystkich podsiatek
b
i sprawdza, czya
jest wśród nich. Podsiatki są generowane przez rekurencyjne rozgałęzienie podczas usuwania pierwszego rzędub
lub obracania go o 90 stopni. Po dokładnie czterech obrotach sprawdza, czy przycięty w dółb
jest równya
.źródło
J ,
211587 bajtówWypróbuj online!
-7 bajtów dzięki Bolce Bussiere
oryginalna odpowiedź
J ,
2115 bajtówWypróbuj online!
-6 bajtów dzięki FrownyFrog
w jaki sposób
<@[
zapakowany lewy arg$@[<;.3]
wszystkie prostokąty w prawym arg o tym samym kształcie co lewy arge.&,
źródło
<@[e.&,$@[<;.3]
+/@:,@E.
. E. jest właściwie stworzony do tego wyzwania.Węgiel drzewny , 26 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Mocno oparty na mojej odpowiedzi na Count ciągłych podmacierzy , jedyną różnicą jest to, że zamiast brać sumę dopasowań, biorę maksimum, a ze względu na niejawną konwersję łańcucha ze względu na użycie
⭆
wyniku jest już ciąg, który zapisuje bajt.źródło
05AB1E , 10 bajtów
Pobiera
b
jako pierwsze wejście,a
jako drugie. Oba dane wejściowe jako macierze znaków.Port odpowiedzi 05AB1E @ Mr.Xcodera na to pokrewne wyzwanie , więc go oceń!
Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
Python 2 ,
106118113 bajtówWypróbuj online!
źródło
Wolfram Language (Mathematica) , 46 bajtów
Wypróbuj online!
Funkcja curry: połączenie z
f[a][b]
.Czy istnieją krótsze alternatywy dla
Or@@Or@@@
lubDimensions
?źródło
JavaScript (ES6) ,
131 112105 bajtów105 bajtów:
Wypróbuj online!
Zmiany:
m[i]
nax
in[z]
nal
: Całkowicie zapomniałem, że te zmienne zostały już zaimplementowane&&
na&
: obie strony operatora są już logiczne, więc operator bitowy będzie działał112 bajtów:
Wypróbuj online!
Zmiany:
map((c,j)=>{...}).some(s=>s)
wsome((c,j)=>{...})
: Redundancjam[i+z].join()
intom[i+z]+''
: krótszy sposób na konwersję tablicy na ciągindexOf(n[z].join(),j)
windexOf(n[z],j)
: TheindexOf
metody już konwertujen[z]
na sznurku131 bajtów:
Wypróbuj online!
Czytelny:
Zamiast porównywać poszczególne wartości, sprawdziłem, czy linie z siatki N są zawarte w liniach siatki M, a jeśli tak, to przy jakich indeksach. Jeśli wszystkie linie są uwzględnione, zaczynając od tego samego indeksu, wówczas siatka N jest zawarta w siatce M.
źródło
PowerShell ,
711028598 bajtówdzięki @Jo King; dodane przypadki testowe.
Wypróbuj online!
Mniej golfa:
źródło
JavaScript, 150 bajtów
Wypróbuj online
źródło