檢查 Python 中二進位制字串中所有 1 是否等距


假設我們有一個二進位制字串 str,我們需要檢查字串中所有的 1 是否等距。換句話說,每兩個 1 之間的距離都相同。並且字串至少包含兩個 1。

因此,如果輸入類似於 s = "100001000010000",則輸出將為 True,因為 1 之間的距離為 4。

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

  • index := 一個新的列表
  • 對於 i 從 0 到 s 的大小,執行:
    • 如果 s[i] 等於 1,則:
      • 將 i 插入到 index 的末尾
  • t := index 的大小
  • 對於 i 從 1 到 t - 1,執行:
    • 如果 (index[i] - index[i - 1]) 不等於 (index[1] - index[0]),則:
      • 返回 False
  • 返回 True

讓我們看下面的實現來更好地理解:

示例

線上演示

def solve(s):
   index = []
   for i in range(len(s)):
      if s[i] == '1':
         index.append(i)
   t = len(index)
   for i in range(1, t):
      if (index[i] - index[i - 1]) != (index[1] - index[0]):
         return False
   return True
s = "100001000010000"
print(solve(s))

輸入

"100001000010000"

輸出

True

更新於:2020-12-30

96 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.