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

Chương trình kiểm tra danh sách khối vuông có đối xứng qua đường y=x bằng Python


Cho danh sách nums đại diện chiều cao các cột khối vuông. Kiểm tra hình dạng có đối xứng qua đường y=x hay không.

Ví dụ: [7,5,3,2,2,1,1] → True.

Giải thuật

  • Hai con trỏ i=0 (duyệt chiều cao), j=len(nums)-1 (duyệt cột từ phải).
  • Lặp khi i <= j:
    • h = nums[j].
    • Trong khi i < h: kiểm tra nums[i] == j+1, tăng i.
    • Giảm j.
  • Trả về True nếu không vi phạm.

Ví dụ minh họa

class Solution:
    def solve(self, nums):
        i = 0
        j = len(nums) - 1
        while i <= j:
            h = nums[j]
            while i < h:
                if nums[i] != j + 1:
                    return False
                i += 1
            j -= 1
        return True

ob = Solution()
nums = [7, 5, 3, 2, 2, 1, 1]
print(ob.solve(nums))

Đầu vào

[7, 5, 3, 2, 2, 1, 1]

Đầu ra

True