程序以找到Python中最长的平衡子序列的长度

假设我们有一个包含括号括号“(”和“)”的字符串s,我们必须找到平衡括号中最长子序列的长度。

因此,如果输入像s =“())(()(”),那么输出将为4,因为我们可以采用像“()()”这样的子序列

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

  • res:= 0

  • n:= s的大小

  • 关闭:= 0

  • 对于范围在n-1到0的i,减1,

    • 如果关闭> 0,则

    • 关闭:=关闭-1

    • res:= res + 2

    • 关闭:=关闭+ 1

    • 如果s [i]与“)”相同,则

    • 除此以外,

    • 返回资源

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

    示例

    class Solution:

       def solve(self, s):

          res = 0

          n = len(s)

          close = 0

          for i in range(n - 1, -1, -1):

             if s[i] == ")":

                close += 1

             else:

                if close > 0:

                   close -= 1

                      res += 2

                return res

    ob = Solution()s = "())(()("

    print(ob.solve(s))

    输入值

    "())(()("

    输出结果

    4

    以上是 程序以找到Python中最长的平衡子序列的长度 的全部内容, 来源链接: utcz.com/z/350145.html

    回到顶部