Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่าบล็อกสมมาตรตามเส้น y=x หรือไม่ใน Python


มีรายการ nums แทนความสูงบล็อกสี่เหลี่ยม ตรวจสอบว่ารูปทรงสมมาตรตาม y=x หรือไม่

เช่น nums=[7,5,3,2,2,1,1] ให้ True

ขั้นตอนการแก้ปัญหา

  • Two pointers: i=0, j=len(nums)-1
  • ขณะ i <= j: h = nums[j]
  • ขณะ i < h: ตรวจสอบ nums[i] == j+1 ไม่ใช่คืน False
  • i++, j--
  • จบลูปคืน True

ตัวอย่างโค้ด

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))

อินพุต

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

เอาต์พุต

True