从Python中的给定字符串中查找最长有效括号长度的程序

假设我们有一个字符串s。这仅包括打开和关闭括号。我们必须找到最长的有效(格式正确)括号子字符串的长度。因此,如果输入类似“))(())()),则结果将为6,因为有效字符串为“(())()”。

例 

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

class Solution(object):
   def solve(self, s):
      stack = [-1]
      ans = 0
      for i in range(len(s)):
         if s[i] == "(":
            stack.append(i)
         else:
            if stack and stack[-1]!=-1 and s[stack[-1]] == "(":
               stack.pop()
               ans = max(ans,i - stack[-1])
            else:
               stack.append(i)
      return ans
ob = Solution()
print(ob.solve("))(())())"))

输入值

"))(())())"
输出结果
6

猜你喜欢