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