Python 中檢查字串是否包含 m 個連續的 1 或 0


假設我們有一個二進位制字串 s 和另一個值 m,我們需要檢查該字串是否包含 m 個連續的 1 或 m 個連續的 0。

因此,如果輸入類似於 s = "1110111000111",m = 3,則輸出將為 True,因為存在三個連續的 0 和 1。

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

  • str_size := s 的大小
  • count_0 := 0,count_1 := 0
  • 對於 i 從 0 到 str_size - 2,執行以下操作:
    • 如果 s[i] 等於 '0',則
      • count_1 := 0
      • count_0 := count_0 + 1
    • 否則,
      • count_0 := 0
      • count_1 := count_1 + 1
    • 如果 count_0 等於 m 或 count_1 等於 m,則
      • 返回 True
  • 返回 False

讓我們看看下面的實現,以便更好地理解:

示例

 即時演示

def solve(s, m):
   str_size = len(s)
   count_0 = 0
   count_1 = 0
   for i in range(0, str_size - 1):
      if (s[i] == '0'):
         count_1 = 0
         count_0 += 1
      else :
         count_0 = 0
         count_1 += 1
      if (count_0 == m or count_1 == m):
         return True
   return False
s = "1110111000111"
m = 3
print(solve(s, m))

輸入

"1110111000111", 3

輸出

True

更新於: 2020-12-29

493 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.