1. 字符串s的长度一定是偶数,不可能是奇数(因为要一对对匹配)。
    2. 右括号前面一定跟着左括号,才符合匹配条件,具备对称性。
    3. 右括号前面如果不是左括号,一定不是有效的括号。

      1. const isValid = (str) => {
      2. if (str === '') return true;
      3. const map = {
      4. '{': '}',
      5. '(': ')',
      6. '[': ']'
      7. };
      8. const arr = [];
      9. for (let i = 0; i < str.length; i++) {
      10. const currStr = str[i];
      11. // 左括号
      12. if (map[currStr]) {
      13. arr.push(currStr);
      14. } else {
      15. if (arr.length === 0 || map[arr.pop()] !== currStr) return false;
      16. }
      17. }
      18. return !arr.length;
      19. }