Ini adalah generalisasi 2 dimensi dari tantangan ini .
Untuk tujuan kita, satu matriks (atau array 2D) A dianggap sebagai submatriks lain matriks B , jika A dapat diperoleh dengan melepas sejumlah baris dan kolom dari B . (Catatan: beberapa sumber memiliki definisi yang berbeda / lebih ketat.)
Ini sebuah contoh:
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]
Kami dapat menghapus kolom 2, 3, 5, 6 dan baris 2, 4 dari B untuk mendapatkan 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] _ _ _ _ _ _]
Perhatikan bahwa A masih merupakan submatrix B jika semua baris atau semua kolom B dipertahankan (atau sebenarnya jika A = B ).
Tantangan
Anda menebaknya. Diberikan dua matriks integer non-kosong A dan B , tentukan apakah A adalah submatrix dari B .
Anda dapat menulis sebuah program atau fungsi, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi dan mengeluarkan hasilnya melalui STDOUT (atau alternatif terdekat), nilai pengembalian fungsi atau parameter function (out).
Input mungkin dalam format apa pun yang nyaman. Matriks dapat diberikan sebagai daftar bersarang, string menggunakan dua pemisah yang berbeda, daftar datar bersama dengan dimensi matriks, dll., Selama input tidak diproses sebelumnya. Anda dapat memilih untuk mengambil B terlebih dahulu dan A kedua, selama pilihan Anda konsisten. Anda dapat mengasumsikan bahwa unsur-unsur matriks positif dan kurang dari 256.
Output harus truthy jika A adalah submatriks dari B dan falsy sebaliknya. Nilai output spesifik tidak harus konsisten.
Aturan standar kode-golf berlaku.
Uji Kasus
Setiap test case berada pada jalur yang terpisah A, B
,.
Kasus kebenaran:
[[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]]
Kasus palsu:
[[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]]