leetcode-1021-删除最外层的括号

86 阅读1分钟

image.png leetcode原题

解题思路

  • 用变量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;
};