class Solution {
public int longestValidParentheses(String s) {
int maxans = 0;
int[] dp = new int[s.length()];
for(int i = 1;i <s.length();i++){
if(s.charAt(i) == ')'){
if(s.charAt(i-1) == '('){
dp[i] = (i >= 2 ? dp[i-2]:0)+2;
}else if(i-dp[i-1]-1 >= 0 && s.charAt(i-dp[i-1]-1)=='('){ //保证i-1这个位置对应得到左括号存在
dp[i] = dp[i-1] + ((i - dp[i-1] -2 >= 0) ? dp[i-dp[i-1]-2] : 0)+2;
//i - dp[i-1] -2 >= 0 看看i-1这个位置对应的左括号再往左边存在
}
maxans = Math.max(maxans,dp[i]);
}
}
return maxans;
}
}
最长的有效括号解析 leetcode有的解析不懂
最新推荐文章于 2024-07-09 23:43:07 发布