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

โปรแกรมสร้างตัวสลับ bulb โดยใช้สตริงไบนารีโดยใช้ Python


สมมติว่าเรามีหลอดไฟ n ดวงในห้องหนึ่ง หลอดไฟเหล่านี้มีหมายเลขตั้งแต่ 0 ถึง n-1 เราต้องเรียงเป็นแถวจากซ้ายไปขวา เริ่มแรก หลอดไฟทั้งหมดจะปิด (0-state) เราต้องได้รับการกำหนดค่าที่แสดงโดยอาร์เรย์เป้าหมายที่กำหนด 't' โดยที่ t[i] คือ '1' หากหลอดไฟ ith เปิดอยู่และ '0' หากปิดอยู่ นอกจากนี้เรายังมีสวิตช์เพื่อพลิกสถานะของหลอดไฟ และการดำเนินการพลิกถูกกำหนดดังนี้ -

  • เลือกดัชนีหลอดไฟ i.

  • พลิกแต่ละหลอดจากดัชนี i เป็นดัชนี n - 1

เราต้องหาจำนวนพลิกขั้นต่ำที่จำเป็นในการสร้างเป้าหมาย

ดังนั้น หากอินพุตเป็น t ="0101" เอาต์พุตจะเป็น 3 หากเราเริ่มจากหลอดที่สอง การกำหนดค่าถัดไปจะเป็น "0111" จากนั้นจากที่สาม จะเป็น "0100" จากนั้นพลิกกลับเป็นครั้งสุดท้าย หลอดไฟเพื่อทำเป็น "0101"

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • นับ :=0

  • x :='0'

  • สำหรับแต่ละ i ใน t ทำ

    • ถ้าฉันไม่เหมือน x แล้ว

      • นับ :=นับ + 1

      • x :=ผม

  • จำนวนคืน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

def Solve(t):count =0 x ='0' for i in t:if i !=x:count +=1 x =i return countt ="0101"print(solve(t)) 

อินพุต

"0101"

ผลลัพธ์

3