top of page

Longest Valid Parentheses

Updated: Apr 6, 2021

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

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


  • 0 <= s.length <= 3 * 104

  • s[i] is '(', or ')'.


class Solution {
    public int longestValidParentheses(String s) {
        if(s==null || s.length() == 0)
            return 0;
        Stack<Integer> stack = new Stack<>();
        for(int i=0;i<s.length();i++)
            if(!stack.isEmpty() && s.charAt(i)==')' && s.charAt(stack.peek())=='(')
            else stack.push(i);
        int index=-1;
        int max=0;
        for(int i:stack)
        return max;

102 views0 comments

Recent Posts

See All

Minimum Deletions to Make Character Frequencies Unique

A string s is called good if there are no two different characters in s that have the same frequency. Given a string s, return the minimum number of characters you need to delete to make s good. The f

Smallest String With A Given Numeric Value

The numeric value of a lowercase character is defined as its position (1-indexed) in the alphabet, so the numeric value of a is 1, the numeric value of b is 2, the numeric value of c is 3, and so on.


bottom of page