package LeetCode.OneToFiveHundred;
public class ThirtyTwo {
public int longestValidParentheses(String s) {
int max = 0;
char[] cs = s.toCharArray();
int len = s.length();
int[] dp = new int[len];
for (int i = 1; i < len; i++){
if (cs[i] == ')')
if (cs[i - 1] == '(')
dp[i] = (i >= 2 ? dp[i - 2] : 0) + 2;
else if (i - dp[i -1] > 0 && cs[i - dp[i - 1] - 1] == '(')
dp[i] = dp[i - 1] + ((i - dp[i - 1] >= 2) ? dp[i - dp[i - 1] - 2] : 0) + 2;
max = Math.max(dp[i], max);
}
return max;
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-62641.html