LeetCode 20.有效括号

151 阅读1分钟

image.png

解法1

使用栈,来处理。遇到左括号就入栈,遇到右括号就去栈中寻找最近的左括号,看是否匹配

/*
 * @lc app=leetcode.cn id=20 lang=javascript
 *
 * [20] 有效的括号
 */
/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
  let slen = s.length;
  if (slen % 2 === 1) {
    return false;
  }
  let stack = [];
  for (let val of s) {
    if (val === "(" || val === "{" || val === "[") {
      stack.push(val);
    } else {
      let leftVal = stack.pop();
      if (
        (leftVal === "(" && val === ")") ||
        (leftVal === "{" && val === "}") ||
        (leftVal === "[" && val === "]")
      ) {
        continue;
      } else {
        return false;
      }
    }
  }
  if (stack.length > 0) {
    return false;
  }
  return true;
};