Given a string containing just the characters '(' and ')', return the length of the longest valid (well-formed) parentheses substring.
We use analytics and advertising cookies to understand how the site is used and whether our ads on Facebook and Instagram work. They are set only if you accept. See our Privacy Policy for details.
Given a string containing just the characters '(' and ')', return the length of the longest valid (well-formed) parentheses substring.
A hard stack problem, graded against 7 test cases (4 of them hidden).
Last-in-first-out processing - matching, nesting, and deferred evaluation.
Reach for it when you see: Balanced brackets, nested structures, undo/back semantics, or expression evaluation.
More Stack problems →Use a stack initialized with -1 as the base. For each '(', push its index. For each ')', pop the top. If the stack becomes empty, push the current index as the new base. Otherwise, the current valid length is i - stack.top().
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.