leetcode20

221 阅读1分钟

20. 有效的括号

既然满足一下条件:

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

将字符通过一个数组保存,如果字符是左括号如(、{等; 将字符串放在数组中;
如果遇到右括号;设当前右括号为x;将当前数组最后一位y取出,如果x和y不可以组成一对有效括号,则该字符串不是有效括号;

代码如下

var isValid = function (s) {
  const len = s.length;
  let sign = true;
  const list = [];
  for (let i = 0; i < len; i++) {
    const c = s[i];

    if (c === '(' || c === '{' || c === '[') {
      list.push(c);
    } else {
      const l = list.length - 1;
      const t = list[l];
      if (
        (c === ')' && t === '(') ||
        (c === ']' && t === '[') ||
        (c === '}' && t === '{')
      ) {
        list.pop();
      } else {
        sign = false;
      }
    }
  }
  return sign && list.length === 0;
};