题目描述:
给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
输入: "(()"
输出: 2
解释: 最长有效括号子串为 "()"
示例 2:
输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"
题解:
/**
* @param {string} s
* @return {number}
*/
var longestValidParentheses = function(s) {
var ans=0;
var len=s.length;
var str=[];
str.push(-1);
for(var i=0;i<s.length;++i){
if(s[i]==='('){
str.push(i);
}
else{
str.pop();
if(str.length===0){
str.push(i);
}
else{
ans=Math.max(ans,i-str[str.length-1]);
}
}
}
return ans;
};