假设我们有一个字符串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