2021-05-31leetcode 20题 给定一个只包括 '

2021-05-31  本文已影响0人  alanwhy

题源

百度技术二面

题目

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

有效字符串需满足:

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

解答

const isValid = function (s) {
  if (s.length % 2 == 1) return false;

  let stack = [];
  for (let i = 0; i < s.length; i++) {
    const strItem = s[i];
    if (strItem === '{' || strItem === '[' || strItem === '(') {
      stack.push(strItem);
    } else {
      if (stack.length === 0) return false;
      const item = stack[stack.length - 1];
      if (item === '{' && strItem === '}' || item === '[' && strItem === ']' || item == '(' && strItem == ')') {
        stack.pop();
      } else {
        return false;
      }
    }
  }
  return stack.length === 0;
};

console.log(isValid('{}'));
上一篇下一篇

猜你喜欢

热点阅读