题目描述
解题思路
首先想到的就是所有的合法的有效括号,必然是用到栈的结构,结果直接提交显示失败,这样求的是全部的合法的字符串,而题目要求的是子串的合法的括号的最大长度。这时候采用的另一种入队方式,就是当遇到的(的时候将)括号入队,在出队的时候进行最长长度的更新,就是)括号的下标减去栈顶的元素。
代码如下
class Solution:
def longestValidParentheses(self, s: str) -> int:
#可以设置一个连续的标志位置
#可以使用栈的思想
result=0
templist=[-1]
for i in range(0,len(s)):
if s[i]=="(":
templist.append(i)
else:
templist.pop()
if templist==[]:
templist.append(i)
else:
if result<i-templist[-1]:
result=i-templist[-1]
return result