Python 中删除连续重复字符后查找字符串的程序
pythonserver side programmingprogramming更新于 2026/2/3 6:04:17
假设我们有一个字符串 s,我们反复删除第一个连续的重复字符。我们必须找到最终的字符串。
因此,如果输入为 s = "xyyyxxz",则输出将为 "z",因为 "yyy" 是将被删除的第一个连续重复字符。所以我们有 "xxxz"。然后将 "xxx" 删除以最终得到 "z"。
为了解决这个问题,我们将遵循以下步骤 −
- stack := a new stack
- i := 0
- while i < s 的大小,执行
- 如果堆栈不为空且堆栈顶部与 s[i] 相同,则
- x := 从堆栈中删除最后一个元素
- 当 i < s 的大小且 x 与 s[i] 相同时,执行
- i := i + 1
- i := i - 1
- 否则,
- push s[i] into stack
- i := i + 1
- 如果堆栈不为空且堆栈顶部与 s[i] 相同,则
- 加入堆栈元素后返回
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def solve(self, s): stack = [] i = 0 while i < len(s): if len(stack) and stack[-1] == s[i]: x = stack.pop() while i < len(s) and x == s[i]: i += 1 i -= 1 else: stack.append(s[i]) i += 1 return "".join(stack) ob = Solution() s = "xyyyxxz" print(ob.solve(s))
输入
"xyyyxxz"
输出
z
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

