Given a string consisting of opening and closing parenthesis, find the length of thelongest valid parenthesis substring.
Cpp Program Code:
Here's the C++ code to find the length of the longest valid parenthesis substring:
The function longestValidParentheses takes a string s as input and returns the length of the longest valid parenthesis substring.
We first initialize a stack st with -1 as the bottom element. We traverse the string s from left to right, and for each opening parenthesis (, we push its index onto the stack. For each closing parenthesis ), we pop the top element from the stack, and if the stack is empty, we push the index of the closing parenthesis onto the stack. Otherwise, we update the maximum length with the difference between the current index and the index at the top of the stack.
After the traversal is complete, we return the maximum length.
Python Program code:
Here's a Python code to solve the problem:
The approach is to use a stack to keep track of the indices of opening brackets. When a closing bracket is encountered, we pop the last opening bracket index from the stack and calculate the length of the valid parenthesis substring. The maximum length found so far is stored in the variable max_length. The stack is initialized with -1 to handle the case where the first character is a closing bracket.