Jest to dwuwymiarowe uogólnienie tego wyzwania .
Do naszych celów, jeden matrycę (lub panelu 2D) jest uważany za podmatryca innego macierzy B , jeśli może być uzyskany przez całkowite usunięcie liczbę wierszy i kolumn z B . (Uwaga: niektóre źródła mają różne / bardziej restrykcyjne definicje).
Oto przykład:
A = [1 4 B = [1 2 3 4 5 6
2 1] 6 5 4 3 2 1
2 1 2 1 2 1
9 1 8 2 7 6]
Możemy usunąć kolumny 2, 3, 5, 6 i wiersze 2, 4 z B, aby uzyskać A :
B = [1 2 3 4 5 6 [1 _ _ 4 _ _ [1 4 = A
6 5 4 3 2 1 --> _ _ _ _ _ _ --> 2 1]
2 1 2 1 2 1 2 _ _ 1 _ _
9 1 8 2 7 6] _ _ _ _ _ _]
Zauważ, że A jest nadal submatrixem B, jeśli wszystkie wiersze lub wszystkie kolumny B są zachowane (lub w rzeczywistości, jeśli A = B ).
Wyzwanie
Zgadłeś. Biorąc pod uwagę dwa niepusty całkowitą macierzy i B należy określić, czy jest podmatryca z B .
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji i wypisując wynik przez STDOUT (lub najbliższą alternatywę), wartość zwracaną funkcji lub parametr funkcji (wyjściowej).
Dane wejściowe mogą być w dowolnym dogodnym formacie. Macierze można podawać jako listy zagnieżdżone, ciągi znaków z dwoma różnymi separatorami, listy płaskie wraz z wymiarami macierzy itp., O ile dane wejściowe nie są wstępnie przetworzone. Możesz zdecydować się wziąć B najpierw, a A drugi, o ile twój wybór jest zgodny. Możesz założyć, że elementy macierzy są dodatnie i mniejsze niż 256.
Wyjście powinno być zgodne z prawdą, jeśli A jest submatrixem B, a fałsz w przeciwnym razie. Określona wartość wyjściowa nie musi być spójna.
Obowiązują standardowe zasady gry w golfa .
Przypadki testowe
Każdy przypadek testowy jest na osobnej linii A, B
.
Prawdziwe przypadki:
[[1]], [[1]]
[[149, 221]], [[177, 149, 44, 221]]
[[1, 1, 2], [1, 2, 2]], [[1, 1, 1, 2, 2, 2], [3, 1, 3, 2, 3, 2], [1, 1, 2, 2, 2, 2]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, 2, 3], [4, 7, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[228, 66], [58, 228]], [[228, 66], [58, 228]]
[[1, 2], [2, 1]], [[1, 2, 2], [2, 1, 2], [2, 2, 1]]
[[136, 196], [252, 136]], [[136, 252, 210, 196, 79, 222], [222, 79, 196, 210, 252, 136], [252, 136, 252, 136, 252, 136], [180, 136, 56, 252, 158, 222]]
Przypadki Falsy:
[[1]], [[2]]
[[224, 15]], [[144, 15, 12, 224]]
[[41], [150]], [[20, 41, 197, 150]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, 2, 3], [7, 8, 9], [4, 5, 6]]
[[1, 2, 2], [2, 1, 2], [2, 2, 1]], [[1, 2], [2, 1]]
[[1, 2, 2], [2, 1, 2]], [[1, 2], [2, 1], [2, 2]]
[[1, 2], [3, 4]], [[5, 3, 4, 5], [2, 5, 5, 1], [4, 5, 5, 3], [5, 1, 2, 5]]
[[158, 112], [211, 211]], [[158, 211, 189, 112, 73, 8], [8, 73, 112, 189, 211, 158], [211, 158, 211, 158, 211, 158], [21, 158, 199, 211, 212, 8]]