题目:
解答:
我的方法是,对每一个右括号,从左侧找出匹配的左括号,然后将其与左侧的左括号,都改为空格符,最后统计最长的空格符的长度即可。
代码:
class Solution {
public:
int longestValidParentheses(string s) {
int len = s.size();
if(len < 2) return 0;
for(int i = 1;i < len; ++i){
if(s[i] == ')'){
int j = i - 1;
while(j >= 0 && s[j] != '(') --j;
if(j >= 0){
s[i] = ' ';
s[j] = ' ';
}
}
}
int maxlen = 0;
int i = 0;
while(i < len){
int cnt = 0;
while(i < len && s[i] != ' ') ++i;
while(i < len && s[i] == ' ') ++cnt, ++i;
if(cnt > maxlen) maxlen = cnt;
}
return maxlen;
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)