สมมติว่าเรามีเมทริกซ์ M เราต้องตรวจสอบว่าเป็นเมทริกซ์ Toeplitz หรือไม่ ดังที่เราทราบเมทริกซ์เรียกว่า Toeplitz เมื่อทุกเส้นทแยงมุมจากซ้ายไปขวามีค่าเท่ากัน
ดังนั้นหากอินพุตเป็นแบบ
7 | 2 | 6 |
3 | 7 | 2 |
5 | 3 | 7 |
แล้วผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สำหรับแต่ละแถว i ยกเว้นแถวสุดท้าย ทำ
- สำหรับแต่ละคอลัมน์ยกเว้นคอลัมน์สุดท้าย ให้ทำ
- ถ้า matrix[i, j] ไม่เหมือนกับ matrix[i+1, j+1] แล้ว
- คืนค่าเท็จ
- ถ้า matrix[i, j] ไม่เหมือนกับ matrix[i+1, j+1] แล้ว
- สำหรับแต่ละคอลัมน์ยกเว้นคอลัมน์สุดท้าย ให้ทำ
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, matrix): for i in range(len(matrix)-1): for j in range(len(matrix[0])-1): if matrix[i][j]!=matrix[i+1][j+1]: return False return True ob = Solution() matrix = [ [7, 2, 6], [3, 7, 2], [5, 3, 7]] print(ob.solve(matrix))
อินพุต
[[7, 2, 6], [3, 7, 2], [5, 3, 7]]
ผลลัพธ์
True