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

ตรวจสอบว่า Move ใน Stack หรือ Queue ถูกต้องหรือไม่ด้วย Python


สมมติมี 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