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