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

假设我们有一个字符串s,我们重复删除第一个连续的重复字符。我们必须找到最终的字符串。

因此,如果输入类似于s =“ xyyyxxz”,则输出将为“ z”,因为“ yyy”是将被删除的第一个连续重复字符。所以我们有“ xxxz”。然后,“ xxx”将被删除,以“ z”结尾。

为了解决这个问题,我们将遵循以下步骤-

  • 堆栈:=一个新的堆栈

  • i:= 0

  • 当我<s的大小时

    • 将s [i]推入堆栈

    • x:=从堆栈中删除最后一个元素

    • 当i <s的大小且x与s [i]相同时,

    • 我:=我-1

    • 我:=我+ 1

    • 如果堆栈不为空并且堆栈顶部与s [i]相同,则

    • 除此以外,

    • 我:=我+ 1

    • 加入堆栈元素后返回

    让我们看下面的实现以更好地理解-

    示例

    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中删除连续的重复字符后查找字符串的程序 的全部内容, 来源链接: utcz.com/z/335320.html

    回到顶部