题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

/**

  * 

  * @param s string字符串 

  * @return bool布尔型

  思路:

    把字符串转为数组sArr,创建一个辅助栈stack。遍历sArr。

    1、如果栈为空,将sArr[i] push进栈;

    2、栈不为空,如果以下三种情况符合任意一种,就将栈顶元素移除:

    栈顶为'(',且此刻遍历到的元素为')'

    栈顶为'[',且此刻遍历到的元素为']'

    栈顶为'{',且此刻遍历到的元素为'}'

    如果都不符合这三种情况,就将arr[i] push 入栈;

    3、 最后如果栈为空,则true;否则false

  */

function isValid(s) {

    // write code here

    const sArr = s.split(""); // ["(", ")", "[", "]"]

    const stack = [];

    for (let i = 0i < sArr.lengthi++) {

        if (stack.length === 0) {

            stack.push(sArr[i]); // ["("]

        } else {

            if (

                (stack[stack.length - 1] === "(" && sArr[i] === ")") ||

                (stack[stack.length - 1] === "{" && sArr[i] === "}") ||

                (stack[stack.length - 1] === "[" && sArr[i] === "]")

            ) {

                stack.pop();

            } else {

                stack.push(sArr[i]);

            }

        }

    }

    return !stack.length;

}

module.exports = {

    isValid: isValid,

};

全部评论

相关推荐

自由水:这HR已经很好了,多的是已读不回和不读了
点赞 评论 收藏
分享
喜欢核冬天的哈基米很想上市:会爆NullPointerException的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务