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

โปรแกรมตรวจสอบว่า 1 ทั้งหมดติดกันหรือไม่ใน Python

ให้ลิสต์ nums มี 1 อย่างน้อย 1 ตัว ตรวจสอบว่า 1 ทั้งหมดอยู่ติดกัน (Consecutive)

ตัวอย่าง: nums=[8,2,1,1,1,3,5] → True

ขั้นตอน (State Machine)

  1. visited = 0 (0=ยังไม่เจอ 1, 1=กำลังเจอ 1, 2=จบช่วง 1 แล้ว)
  2. วน x ใน nums:
    • x==1: ถ้า visited==2 → False; visited=1
    • x!=1 และ visited!=0: visited=2
  3. จบลูป: True

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

def solve(nums):
    visited = 0
    for x in nums:
        if x == 1:
            if visited == 2:
                return False
            visited = 1
        elif visited:
            visited = 2
    return True

nums = [8, 2, 1, 1, 1, 3, 5]
print(solve(nums))  # Output: True

อินพุต

[8, 2, 1, 1, 1, 3, 5]

เอาต์พุต

True