算法分析与设计作业题
作业来源(hard)

public class Solution {
public int longestValidParentheses(String s) {
if(s == null || s.length()<=1) return 0;
int count = 0, max=0, depth = 0;
for(int i=0; i<s.length(); i++){
char c = s.charAt(i);
if(c == '(') depth++;
else{
depth--;
count++;
if(depth == 0) max = Math.max(max, count*2);
if(depth<0){
depth = 0;
count = 0;
}
}
}
depth = 0;
count = 0;
for(int i=s.length()-1; i>=0; i--){
char c = s.charAt(i);
if(c == ')') depth++;
else{
depth--;
count++;
if(depth == 0) max = Math.max(max, count*2);
if(depth<0){
depth = 0;
count = 0;
}
}
}
return max;
}
}
本文深入探讨了一种高效算法,用于求解给定字符串中最大长度的有效括号子串。通过两次遍历,分别从左到右和从右到左,确保了算法的准确性和效率。代码示例清晰展示了如何利用深度计数来跟踪有效括号的配对情况。
1708

被折叠的 条评论
为什么被折叠?



