32. Longest Valid Parentheses
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 i = 0; i < s.length(); i++) {
if (s.charAt(i)=='(') stack.push(i);
else {
if (stack.isEmpty()) left=i;
else {
stack.pop();
if (stack.isEmpty()) max=Math.max(max, i-left);
else max= Math.max(max, i-stack.peek());
}
}
}
return max;
}
}
本文介绍了一种使用栈解决最长有效括号子串问题的方法。通过遍历字符串并利用栈记录左括号的位置,实现了对最长有效括号子串长度的有效计算。
669

被折叠的 条评论
为什么被折叠?



