
Problem
Solution
Submissions
Longest Valid Parentheses
Certification: Advanced Level
Accuracy: 0%
Submissions: 0
Points: 15
Write a C++ program to find the length of the longest valid (well-formed) parentheses substring in a given string containing just the characters '(' and ')'. A valid parentheses string is one where every opening parenthesis '(' has a matching closing parenthesis ')' and they are properly nested.
Example 1
- Input: s = "(()"
- Output: 2
- Explanation:
- Step 1: Use a stack-based approach to track valid parentheses pairs.
- Step 2: Process each character in the string, pushing indices of '(' onto the stack.
- Step 3: When encountering ')', pop from stack and calculate the length of valid sequence.
- Step 4: The longest valid parentheses substring is "()" with length 2.
Example 2
- Input: s = ")()())"
- Output: 4
- Explanation:
- Step 1: Use a stack-based approach to track valid parentheses pairs.
- Step 2: Process each character in the string, pushing indices of '(' onto the stack.
- Step 3: When encountering ')', pop from stack and calculate the length of valid sequence.
- Step 4: The longest valid parentheses substring is "()()" with length 4.
Constraints
- 0 ≤ s.length ≤ 3 * 10^4
- s[i] is '(' or ')'
- Time Complexity: O(n) where n is the length of the string
- Space Complexity: O(n)
Editorial
My Submissions
All Solutions
Lang | Status | Date | Code |
---|---|---|---|
You do not have any submissions for this problem. |
User | Lang | Status | Date | Code |
---|---|---|---|---|
No submissions found. |
Solution Hints
- Consider using a stack to track opening parentheses
- Another approach is using dynamic programming
- You can also solve it with constant space using two passes
- Track the current valid sequence length while scanning the string
- Consider edge cases like empty strings or strings with only one type of parenthesis