## Question

Given a string containing just the characters `'('`

and `')'`

, find the length of the longest valid (well-formed) parentheses substring.

**Example 1:**

Input:s = "(()"Output:2Explanation:The longest valid parentheses substring is "()".

**Example 2:**

Input:s = ")()())"Output:4Explanation:The longest valid parentheses substring is "()()".

**Example 3:**

Input:s = ""Output:0

**Constraints:**

`0 <= s.length <= 3 * 10`

^{4}`s[i]`

is`'('`

, or`')'`

.

## Python Solution

class Solution: def longestValidParentheses(self, s: str) -> int: stack = [-1] max_len = 0 for p in range(len(s)): if s[p] == '(': stack.append(p) else: stack.pop() if stack == []: stack.append(p) else: max_len = max(p-stack[-1],max_len) return(max_len)