LC 0032 [H] Longest Valid Parentheses - ALawliet/algorithms GitHub Wiki
class Solution:
def longestValidParentheses(self, s: str) -> int:
stack = [-1]
longest = 0
for i in range(len(s)):
top = stack[-1]
if len(stack) > 1 and s[top] == '(' and s[i] == ')':
stack.pop()
newTop = stack[-1]
longest = max(i - newTop, longest)
else:
stack.append(i)
return longest
class Solution:
def longestValidParentheses(self, s: str) -> int:
stack = [-1]
r = 0
for i in range(len(s)):
if s[i] == '(':
stack.append(i)
else:
stack.pop()
if not stack:
stack.append(i)
else:
r = max(r, i - stack[-1])
return r