AlgoLounge

Longest Valid Parentheses

hard

Given a string containing just the characters '(' and ')', return the length of the longest valid (well-formed) parentheses substring.

Examples

Example 1

Input:  s = "(()"
Output: 2

The longest valid parentheses substring is "()"

Example 2

Input:  s = ")()())"
Output: 4

The longest valid parentheses substring is "()()"

Example 3

Input:  s = ""
Output: 0

Example 4

Input:  s = "()(())"
Output: 6

The entire string is valid

Constraints

  • 0 <= s.length <= 3 * 10^4
  • s[i] is '(' or ')'
TypeScript
Loading editor…
List of test cases (10)
Case 1
s = "(()"
Case 2
s = ")()())"
Case 3
s = ""
Case 4
s = "()(())"
Case 5
s = "(((()"
Case 6
s = ")))))"
Case 7
s = "()(()"
Case 8
s = "(()())"
Case 9
s = "()()()()("
Case 10
s = "()(()(()"