leetcode-20. 有效的括号-js版

题目

leetcode-20. 有效的括号-js版_第1张图片

代码

/**
 * 思路:使用栈
 * 做法:遍历字符串
 *          如果是左括号则添加进栈;
 *          如果是右括号则与栈中最近的字符匹配看是否成对;
 *              匹配则将左括号作出栈处理,不匹配证明字符串无效
 */
var isValid = function(s) {
    let stack = [], length = s.length;
    if (length % 2) return false

    for (let item of s) {
        if (item === '{' || item === '[' || item === '(') {
            stack.push(item);
        } else {
            if (stack.length && stack.pop() === leftOf(item)) {
                continue;
            } else {
                return false;
            }
        }
    }

    return !stack.length;
};

var leftOf = function(s) {
    if (s === ')') return '(';
    if (s === ']') return '[';
    return '{';

}

参考资料

  • 如何解决括号相关的问题

你可能感兴趣的:(leetcode,leetcode,javascript,算法)