1021. 删除最外层的括号
有效括号字符串为空 ""、"(" + A + ")" 或 A + B ,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。
例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。
示例 1:
输入:s = "(()())(())"
输出:"()()()"
解释:
输入字符串为 "(()())(())",原语化分解得到 "(()())" + "(())",
删除每个部分中的最外层括号后得到 "()()" + "()" = "()()()"。
答案
将 S 的每一个元素逐个插入到堆栈里,如果碰到了( 就放进去,当(多于两个的时候,就拼到结果里,因为多余的那一个是要被删掉的所以不算。当堆栈里的值是满的,就将结果拼到 res 里。
var s = "(()())(())"
var removeOuterParentheses = function(S) {
let stack=[]
let res=""
for(let item of S){
if(item === "("){
stack.push(item)
// 有重复"("相邻:记录下来
if(stack.length >1){
res += item
}
}else if(item === ")"){
stack.pop()
if(stack.length != 0){
res += item
}
}
// console.log(res,stack)
}
return res
};
console.log(removeOuterParentheses(s))