0.题目
从可消除的角度讲,不断消除(),如果能完全消除,即为有效括号。
1. 栈记录下标,(入栈,)出栈,保持栈不空 o(n) o(n)
类似最大矩形的问题的处理方式。
class Solution(object):
def longestValidParentheses(self, s):
stack = [-1]
res = 0
l = len(s)
for i in range(l): #-1()()
if s[i]=='(': #stack=[-1,0,1]. (()))
stack.append(i) #栈中记录下标
else:
stack.pop() #stack=[-1] )))
if not stack: #栈空
stack.append(i) #保持栈不空
else: #栈不空