Python 移除连续 k 个重复字符算法实现


发布日期 : 2020-04-16 10:12:04 UTC

访问量: 10 次浏览

在Python中查找删除k个连续重复字符后的字符串的程序

假设我们有一个字符串 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 相同,则
    • 退出循环
  • 返回 s

示例

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