Python 中最长的有效括号
pythonserver side programmingprogramming更新于 2026/1/15 5:00:17
假设我们有一个字符串,带有左括号和右括号。我们必须找到有效(格式正确)括号的最长长度。因此,如果输入类似于"))(())())",则结果将为 6,因为有效字符串是"(())()"。
要解决这个问题,我们将遵循以下步骤 −
创建一个堆栈,并插入 -1。,设置 ans := 0
for i in range 0 to length of stack – 1
如果 s[i] 是左括号,则将 i 插入堆栈
否则
如果堆栈不为空且堆栈顶部不为 -1 且 s[stack top] 是左括号,则
堆栈顶部元素
ans := ans 和 i 的最大值 – 堆栈顶部
否则将 i 插入堆栈
返回 ans
示例
让我们看下面的实现,以便更好地理解 −
class Solution(object):
def longestValidParentheses(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.longestValidParentheses("))(())())"))
输入
"))(())())"
输出
6
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

