Facebook Pixel

Longest Valid Parentheses

JavaScript
hard
30 mins

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 Explanation: The longest valid parentheses substring is "()".

Example 2:

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

Example 3:

Input: s = "" Output: 0

Constraints

  • 0 <= s.length <= 3 * 10^4
  • s[i] is '(' or ')'

Function Signature

function longestValidParentheses(s) { // Your code here }

Test Cases

  • Base cases: s = "" → 0, s = "(" → 0, s = ")" → 0
  • Simple cases: s = "()" → 2, s = "(()" → 2, s = "())" → 2
  • Medium cases: s = ")()())" → 4, s = "((()))" → 6
  • Edge cases: s = "()()()" → 6, s = "(((((" → 0
  • Complex cases: s = "(()())" → 6, s = "()(()" → 2

Notes

  • Valid parentheses must be properly nested and balanced
  • A substring is a contiguous sequence of characters
  • Need to find the longest such substring
  • Empty string returns 0
  • Single characters are never valid
  • Optimal solution uses stack with O(n) time complexity

Companies:

google
flipkart
amazon

Solve Similar questions 🔥

Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.
Please Login.