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

ตรวจสอบว่าสามารถจัดเรียงสตริงไบนารีใหม่ด้วย 0 และ 1 สำรองใน Python . ได้หรือไม่


สมมติว่าเรามีสตริงไบนารี s ที่มีความยาวตั้งแต่ 2 ขึ้นไป เราต้องตรวจสอบว่าเราสามารถจัดเรียงใหม่เพื่อให้มี 0 และ 1 สำรองหรือไม่

ดังนั้น หากอินพุตเป็นเหมือน s ="1000111" ผลลัพธ์จะเป็น True เนื่องจากเราสามารถสร้าง "1010101" จาก s

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

  • one_count :=นับ 1 ในไบนารีสตริง s
  • zero_count :=นับ 0 ในสตริงไบนารี s
  • ถ้าขนาด s เป็นคู่ ดังนั้น
    • คืนค่า จริง เมื่อ one_count เหมือนกับ zero_count มิฉะนั้น เท็จ
  • คืนค่าจริงเมื่อ |one_count - zero_count| เหมือนกับ 1 มิฉะนั้น เท็จ

ตัวอย่าง

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

def solve(s):
   one_count = s.count('1')
   zero_count = s.count('0')
   if len(s) % 2 == 0 :
      return (one_count == zero_count)
   return abs(one_count - zero_count) == 1
s = "1000111"
print(solve(s))

อินพุต

"1000111"

ผลลัพธ์

True