在 Python 中檢查每個 a 組後面是否都跟著一個長度相同的 b 組


假設我們有一個只包含兩個字元 a 和 b 的小寫字串 s。我們必須檢查每個連續的 a 組後面是否都跟著一個長度相等的連續的 b 組。

因此,如果輸入類似於 s = "abaaabbbaabbaabbab",則輸出將為 True,因為所有組為 (ab)、(aaabbb)、(aabb)、(aabb)、(ab)。

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

  • a_count := 0,string_len := s 的大小
  • i := 0
  • 當 i < string_len 時,執行以下操作:
    • 當 i < string_len 且 s[i] 為 'a' 時,執行以下操作:
      • a_count := a_count + 1
      • i := i + 1
    • 當 i < string_len 且 s[i] 為 'b' 時,執行以下操作:
      • a_count := a_count - 1
      • i := i + 1
    • 如果 a_count 不為 0,則:
      • 返回 False
  • 返回 True

示例

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

 即時演示

def solve(s):
   a_count = 0
   string_len = len(s)
   i = 0
   while i < string_len:
      while i < string_len and s[i] == 'a':
         a_count += 1
         i += 1
      while i < string_len and s[i] == 'b':
         a_count -= 1
         i += 1
      if a_count != 0:
         return False
   return True
s = "abaaabbbaabbaabbab"
print(solve(s))

輸入

"abaaabbbaabbaabbab"

輸出

True

更新於: 2021年1月18日

106 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.