Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem có thể sắp xếp lại một chuỗi nhị phân với các số 0 và 1 thay thế trong Python hay không

Giả sử chúng ta có một chuỗi nhị phân s có độ dài từ 2 trở lên. Chúng tôi phải kiểm tra xem chúng tôi có thể sắp xếp lại các chữ cái sao cho có các chữ số 0 và 1 thay thế hay không.

Vì vậy, nếu đầu vào là s =​​"1000111", thì đầu ra sẽ là True vì chúng ta có thể tạo thành "1010101" từ s.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • one_count:=đếm 1 trong chuỗi nhị phân s
  • zero_count:=đếm 0 trong chuỗi nhị phân s
  • nếu kích thước của s là chẵn thì
    • trả về true khi one_count giống với zero_count, ngược lại là false
  • trả về true khi | one_count - zero_count | giống với 1 nếu không thì là false

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

"1000111"

Đầu ra

True