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
- 如果 s 中包含 k 个连续的 c,则
- 如果 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
广告