删除Python中不同的相邻位后查找最短字符串的程序

假设我们有一个二进制字符串s,我们可以删除两个相邻的字母(如果它们不同)。最后,如果我们能够多次执行此操作,则必须找到可以得到的最小字符串的长度。

因此,如果输入类似于s =“ 1100011”,则输出将为1,因为删除“ 10”后,我们得到的是“ 10011”,然后再次删除“ 10”,它将为“ 011”,然后删除“ 01” ”,它将剩下1。

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

  • 堆栈:=一个新列表

  • 对于s中的每个c

    • 堆栈中的弹出元素

    • 将c推入堆栈

    • 如果堆栈为空或堆栈顶部与c相同,则

    • 否则,当栈顶与c不相同时,则

    • 返回堆栈中的元素数

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

    示例

    class Solution:

       def solve(self, s):

          stack = []

          for c in s:

             if not stack or stack[-1] == c:

                stack.append(c)

             elif stack[-1] != c:

                stack.pop()

          return len(stack)

    ob = Solution() print(ob.solve("1100011"))

    输入项

    "1100011"

    输出结果

    1

    以上是 删除Python中不同的相邻位后查找最短字符串的程序 的全部内容, 来源链接: utcz.com/z/331486.html

    回到顶部