Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra ma trận không đổi sau khi đảo ngược từng hàng (Python)

Bài toán: Cho ma trận vuông, kiểm tra xem ma trận có không thay đổi sau khi đảo ngược từng hàng (reverse each row) hay không. Tức là mọi hàng đều phải là palindrome.

Triển khai Python

def solve(matrix):
    n = len(matrix)
    for i in range(n):
        left, right = 0, n - 1
        while left <= right:
            if matrix[i][left] != matrix[i][right]:
                return False
            left += 1
            right -= 1
    return True

# Test
matrix = [
    [6, 8, 6],
    [2, 8, 2],
    [3, 3, 3]
]
print(solve(matrix))  # True: mọi hàng đều palindrome

matrix2 = [
    [1, 2, 3],
    [4, 5, 6]
]
print(solve(matrix2)) # False

Kết quả

True

Giải thích

  • Ma trận không đổi sau khi reverse từng hàng ⟺ mỗi hàng là palindrome.
  • Duyệt từng hàng, hai con trỏ left, right so sánh đối xứng.
  • Độ phức tạp: O(n²) với n = kích thước ma trận.
  • Không cần tạo ma trận mới, kiểm tra trực tiếp.