维护一个栈,栈内元素是pair,代表括号的左右以及所在的位置,先push进去一个,方便计算
class Solution(object):
def longestValidParentheses(self, s):
"""
:type s: str
:rtype: int
"""
Len=len(s)
if Len<2:return 0
stack=[(1,-1)]
ans=0
for i in range(Len):
if s[i]=='(':
stack.append((0,i))
else:
curL=len(stack)
if stack[curL-1][0]==0:
stack.pop()
t=stack[len(stack)-1]
ans=max(ans,i-t[1])
else :stack.append((1,i))
return ans