[LeetCode] Longest Valid Parentheses

来源:互联网 发布:安心360定位软件 编辑:程序博客网 时间:2024/05/23 11:19

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

For "(()", the longest valid parentheses substring is "()", which has length = 2.

Another example is ")()())", where the longest valid parentheses substring is "()()", which has length = 4.

public class Solution {    public int longestValidParentheses(String s) {        Stack<Integer> stack = new Stack<Integer>();        int max=0;        int left = -1;        for(int j=0;j<s.length();j++){            if(s.charAt(j)=='(') stack.push(j);                        else {                if (stack.isEmpty()) left=j;                else{                    stack.pop();                    if(stack.isEmpty()) max=Math.max(max,j-left);                    else max=Math.max(max,j-stack.peek());                }            }        }        return max;    }}



原创粉丝点击