สมมติว่าเรามีรายการหมายเลขที่เรียกว่า nums และมันแสดงถึงความสูงของบล็อกสี่เหลี่ยม เราต้องตรวจสอบว่ารูปร่างนั้นสมมาตรเหนือเส้น y =x หรือไม่
ดังนั้น หากอินพุตเป็น nums =[7, 5, 3, 2, 2, 1, 1] ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้:
- ผม :=0
- j :=ขนาดของ nums - 1
- ในขณะที่ฉัน <=j ทำ
- h :=nums[j]
- ในขณะที่ฉัน
- ถ้า nums[i] ไม่เหมือนกับ (j + 1) แล้ว
- คืนค่าเท็จ
- ผม :=ผม + 1
- ถ้า nums[i] ไม่เหมือนกับ (j + 1) แล้ว
- j :=j - 1
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น:
ตัวอย่าง
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