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.
package leetcode;
public class leet32 {
public static void main(String[] args) {
leet32 leet = new leet32();
int result = leet.longestVaildParentheses("((())");
System.out.println(result);
}
public int longestVaildParentheses(String s){
StringBuilder str = new StringBuilder();
for(int i = 0;i < s.length();i++){
if(s.charAt(i) == '('){
str.append(s.charAt(i));
}else{
if(str.length() == 0){
str.append(s.charAt(i));
}
else if(str.substring(str.length()-1).equals("(")){
String tmp = str.substring(0, str.length()-1);
str = new StringBuilder().append(tmp);
}else{
str.append(s.charAt(i));
}
}
}
return s.length()-str.length();
}
}