Це двомірне узагальнення цього завдання .
Для наших цілей одна матриця (або 2D масив) A вважається підматрицею іншої матриці B , якщо A можна отримати, повністю видаливши з B ряд рядків і стовпців . (Примітка: деякі джерела мають різні / більш обмежувальні визначення.)
Ось приклад:
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]
Ми можемо видалити стовпці 2, 3, 5, 6 та рядки 2, 4 з B, щоб отримати 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] _ _ _ _ _ _]
Зауважте, що A все ще є підматрицею B, якщо всі рядки або всі стовпці B збережені (або насправді, якщо A = B ).
Змагання
Ви здогадалися. Беручи під увагу два непустих цілочисельних матриць і Б , визначити , є чи є подматріца B .
Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка або аргумент функції та вивівши результат через STDOUT (або найближчу альтернативу), значення повернення функції або параметр функції (out).
Введення може бути в будь-якому зручному форматі. Матриці можуть бути подані у вигляді вкладених списків, рядків, використовуючи два різних роздільника, плоскі списки разом з розмірами матриці тощо, доки вхід не буде попередньо оброблений. Ви можете взяти B першу і А другий, якщо ваш вибір відповідає. Можна припустити, що елементи матриць позитивні і менше 256.
Вихід повинен бути правдивим, якщо A є підматрицею B, а в іншому випадку помилковим . Конкретне вихідне значення не повинно бути узгодженим.
Діють стандартні правила гольф-коду .
Випробування
Кожен тест на окремому рядку, A, B
.
Справжні справи:
[[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]]
Фальшиві випадки:
[[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]]