นี่เป็นลักษณะทั่วไปแบบสองมิติของความท้าทายนี้
สำหรับวัตถุประสงค์ของเราหนึ่งเมทริกซ์ (หรือ 2D อาร์เรย์) ถือว่าเป็นsubmatrixอีกเมทริกซ์Bถ้าสามารถรับได้โดยสมบูรณ์ลบจำนวนแถวและคอลัมน์จาก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ยังคงเป็น submatrix ของBหากแถวทั้งหมดหรือคอลัมน์ทั้งหมดของBถูกเก็บไว้ (หรือในความเป็นจริงถ้าA = B )
ความท้าทาย
คุณเดามัน รับเมทริกซ์AและBจำนวนเต็มที่ไม่ว่างสองค่าให้หาว่าAเป็นเมทริกซ์ย่อยของBหรือไม่
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
อินพุตอาจอยู่ในรูปแบบที่สะดวก เมทริกซ์สามารถถูกกำหนดให้เป็นรายการแบบซ้อน, สตริงที่ใช้ตัวคั่นสองตัวที่แตกต่างกัน, รายการแบบแฟลตพร้อมด้วยขนาดของเมทริกซ์, ฯลฯ ตราบใดที่อินพุตไม่ได้ถูกประมวลผลล่วงหน้า คุณอาจเลือกที่จะใช้Bครั้งแรกและสองตราบใดที่คุณเลือกมีความสอดคล้อง คุณอาจคิดว่าองค์ประกอบของเมทริกซ์นั้นเป็นบวกและน้อยกว่า 256
เอาท์พุทควรเป็นจริงถ้าAเป็น submatrix ของ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]]