Python程式:刪除連續重複字元後查詢字串


假設我們有一個字串 s 和另一個值 k,我們重複刪除最早的 k 個連續重複字元,並返回最終字串。

因此,如果輸入類似於 s = "paaappmmmma" k = 3,則輸出將為 "ma",因為當我們刪除三個 "a" 以得到 "pppmmmma" 時。然後我們刪除三個 "p" 以得到 "mmmma"。然後刪除四個 "m" 中的三個以得到 "ma"。

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

  • 無限迴圈執行以下步驟:
    • count := 0
    • chars := 從 s 中獲取唯一字元
    • 對於 chars 中的每個字元 c,執行以下操作:
      • 如果 s 中包含 k 個連續的 c,則
        • 從 s 中刪除 k 個連續的 c
        • count := count + 1
    • 如果 count 等於 0,則
      • 退出迴圈
  • 返回

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

示例

線上演示

class Solution:
   def solve(self, s, k):
      while True:
         count = 0
         chars = set(s)
         for c in chars:
            if c * k in s:
               s = s.replace(c * k, "")
               count += 1
         if count == 0:
            break
      return s

ob = Solution()
s = "paaappmmmma"
k = 3
print(ob.solve(s, k))

輸入

"paaappmmmma", 3

輸出

ma

更新於: 2020-11-26

839 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.