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 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告