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

โปรแกรมทำ Bulb Switcher ด้วย Binary String ใน Python

มีหลอดไฟ n ดวง เริ่มปิดทั้งหมด (0) ต้องการสร้าง target string t (0/1) Operation: เลือก index i flip สถานะทุกดวงตั้งแต่ i ถึง n-1 หา flips น้อยที่สุด วิธี: นับจำนวนครั้งที่ target เปลี่ยนค่าจาก 0->1 หรือ 1->0 เริ่มจาก '0' นั่นคือจำนวน flips

ขั้นตอนการทำงาน

  1. count = 0, current_state = '0'
  2. วนลูปแต่ละ char i ใน target string t
  3. ถ้า i != current_state: count++, current_state = i
  4. คืน count

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


def solve(t):
    count = 0
    x = '0'
    for i in t:
        if i != x:
            count += 1
            x = i
    return count

t = "0101"
print(solve(t))  # Output: 3

อินพุต/เอาต์พุต

Input: "0101"
Output: 3

Sequence: 0000 -> flip at 1 -> 0111 -> flip at 2 -> 0100 -> flip at 3 -> 0101 (3 flips)