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

94 阅读1分钟

20. 有效的括号](leetcode-cn.com/problems/va…)

解法一:

 * @param {string} s
 * @return {boolean}
 */
//判断字符串的长度是否是偶数,不是则返回false
    if((s.length) % 2 !==0) {
        return false;
    }
    this.stack = []
    for(let i of s){
//利用栈的结构,循环字符串,将'(', '{', '['放到数组中,如果这个数组包含这个符号则推入栈中
    if(i=== '('|| i=== '['|| i=== '{'){
       this.stack.push(i)
    } else {
// 否则取栈顶'(', '{', '[' 其中一项和循环字符串的')','}',']'与之对应取弹出
    let peek = this.stack[this.stack.length-1]
    if((i=== ')' && peek === '(') || (i === ']' && peek === '[') || ( i=== '}' && peek === '{')){
        this.stack.pop()
      }else {
        return false
        }
      }
   }
 //最后判断栈的长度是否为空,空返回ture,反之返回false 
  return this.stack.length == 0