มีหลอดไฟ n ดวง เริ่มปิดทั้งหมด (0) ต้องการสร้าง target string t (0/1) Operation: เลือก index i flip สถานะทุกดวงตั้งแต่ i ถึง n-1 หา flips น้อยที่สุด วิธี: นับจำนวนครั้งที่ target เปลี่ยนค่าจาก 0->1 หรือ 1->0 เริ่มจาก '0' นั่นคือจำนวน flips
ขั้นตอนการทำงาน
- count = 0, current_state = '0'
- วนลูปแต่ละ char i ใน target string t
- ถ้า i != current_state: count++, current_state = i
- คืน 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)