vivipure / TIL

Today I learned
0 stars 0 forks source link

算法题记录 #63

Open vivipure opened 1 year ago

vivipure commented 1 year ago

判断括号是否合法,给定一个包含’(‘和’)’的字符串。判断是否合法。

// 如isBalanced('()()()')返回true。
// isBalanced(')(')返回false。

利用栈进行处理

function isBalanced(str) {
  const bracketStack = []

  for(let i = 0;i < str.length; i++) {
    if(str[i] === '(') {
      bracketStack.push(i)
    } else if(str[i] === ')') {
      bracketStack.pop()
    }
  }
  return bracketStack.length === 0 
}

遇到 ( 就推入栈,遇到 ) 就pop, 最后判断栈的长度,如果长度不为0,则说明不合法