有效的括号js解法

323 阅读1分钟

题目

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/va… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let stack = []
  let map = new Map([
    [')', '('],
    ['}', '{'],
    [']', '[']
  ])

  for (const c of s) {
    if (!map.has(c))
      stack.push(c)
    else if (!stack.length || map.get(c) != stack.pop())
      return false
  }
  return !stack.length
};