解题思路
- 用变量
left记录左括号的数量,每次遇到(加一, 遇到)减一,当左括号的数量为0时,删除当前字符串最外层的括号; - 遍历结束后,最外层的括号就被全部删除了。
/**
* @param {string} s
* @return {string}
*/
var removeOuterParentheses = function(s) {
const n = s.length;
let result = "";
let left = 0;
for (let i = 0; i < n; i++) {
// 右括号要先做匹配,看是否需要加当前
if (s[i] === ")") left--;
if (left > 0) result += s[i];
// 左括号要看之前是否为0
if (s[i] === "(") left++;
}
return result;
};