括号有效问题
原创
©著作权归作者所有:来自51CTO博客作者放下也不自在的原创作品,请联系作者获取转载授权,否则将追究法律责任
public class Parentheses {
public static boolean valid(String s) {
char[] chars = s.toCharArray();
count += c == '(' ? 1 : -1;
public static int needParentheses(String s) {
char[] chars = s.toCharArray();
public static int maxDeep(String s) {
char[] chars = s.toCharArray();
count += c == '(' ? 1 : -1;
max = Math.max(count, max);
public static int maxValidLength(String s) {
char[] chars = s.toCharArray();
int[] dp = new int[chars.length];
for (int i = 1; i < chars.length; i++) {
// 找到当前位置 以前面已经有效的子串为轴的 对称位置
if (pre >= 0 && chars[pre] == '(') {
// 当匹配之后,长度比前一位至少大2,还要加上 pre-1 位置的有效长度
dp[i] = dp[i - 1] + 2 + (pre - 1 >= 0 ? dp[pre - 1] : 0);
max = Math.max(max, dp[i]);