檢查是否可以使用 Python 將二進位制字串重新排列成交替的 0 和 1


假設我們有一個長度為 2 或以上的二進位制字串 s。我們必須檢查是否可以重新排列 s,使得 0 和 1 交替出現。

因此,如果輸入類似於 s = "1000111",則輸出將為 True,因為我們可以從 s 中形成 "1010101"。

為了解決這個問題,我們將遵循以下步驟:

  • one_count := 二進位制字串 s 中 1 的數量
  • zero_count := 二進位制字串 s 中 0 的數量
  • 如果 s 的大小為偶數,則
    • 當 one_count 等於 zero_count 時返回 true,否則返回 false
  • 當 |one_count - zero_count| 等於 1 時返回 true,否則返回 false

示例

讓我們看看下面的實現以獲得更好的理解:

 線上演示

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

更新於: 2021年1月18日

303 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.