前端数据结构与算法每日一题——栈(20. 有效的括号)

98 阅读1分钟

20. 有效的括号

解法二:

 * @param {string} s
 * @return {boolean}
 */
 //判断字符串的长度是否是偶数,不是则返回false
    if((s.length) % 2!=0){
        return false
    }
 //利用栈的结构,循环字符串,将'(', '{', '['放到数组中,如果这个数组包含这个符号则推入栈中
    this.stack = []
    for(let i of s){
        if(['(', '{', '['].includes(i)){
            this.stack.unshift(i)
 //反之将 '()','{}','[]'放入数组中,如果数组中包含栈的第0个元素和循环拼接的字符串则弹出   
        }else if(['()','{}','[]'].includes(stack[0]+i)){
            this.stack.shift()
 //其他的返回false
        }else {
            return false
        }
    }
 //最后判断栈的长度是否为空,空返回ture,反之返回false 
    return this.stack.length == 0
}