class Solution {
public int longestValidParentheses(String s) {
int len=s.length();
if(len==0){
return 0;
}
int[] dp=new int[len];
dp[0]=0;
for(int i=1;i<len;i++){
if(s.charAt(i)==')'){
if(s.charAt(i-1)=='('){
if(i==1){
dp[i]=2;
}
else{
dp[i]=dp[i-2]+2;
}
}else if(s.charAt(i-1)==')'){
if(i-dp[i-1]-1<0){
dp[i]=0;
}
else if(s.charAt(i-dp[i-1]-1)=='('){
if(i-dp[i-1]-2==-1){
dp[i]=dp[i-1]+2;
}
else{
dp[i]=dp[i-dp[i-1]-2]+dp[i-1]+2;
}
}else{
dp[i]=0;
}
}
}
else{
dp[i]=0;
}
}
int min_m=0;
for(int i=1;i<len;i++){
if(dp[i]>min_m){
min_m=dp[i];
}
}
return min_m;
}
}
最长有效括号-动态规划
最新推荐文章于 2024-04-26 14:11:29 发布