สมมติมี Binary List โดย 1 = Push, 0 = Pop ต้องตรวจสอบว่าลำดับ Operation ถูกต้องหรือไม่ (ไม่ Pop จากโครงสร้างว่าง)
เช่น Input nums = [1,0,1,1,0,1] Output True เพราะ Push,Pop,Push,Push,Pop,Push ไม่มี Pop จากว่าง
ขั้นตอนแก้:
- push_count = 0
- วนลูป nums: ถ้า 1 push_count++ ถ้า 0 push_count--; ถ้า push_count < 0 Return False
- Return True
ตัวอย่างโค้ด
def solve(nums):
push_count = 0
for i in range(len(nums)):
if nums[i]:
push_count += 1
else:
push_count -= 1
if push_count < 0:
return False
return True
nums = [1,0,1,1,0,1]
print(solve(nums))
Input
[1,0,1,1,0,1]
Output
True