20220410,相隔1个月

|
```javascript /**

  • @param {string} s
  • @return {boolean} */ // 21:53 -> 22:03 var isValid = function(s) { const len = s.length; if (len % 2 !== 0) return false; // const map = new Map({ // bug: 会报错: object is not iterable(cannot read property Symbol) // ‘}’: ‘{‘, // ‘)’: ‘(‘, // ‘]’: ‘[‘ // }); const map = new Map([
    1. ['}', '{'],
    2. [')', '('],
    3. [']', '[']
    ]) let stack = []; for(let i = 0; i < len; i++) {
     if (map.has(s[i])) {
         if (stack.length <= 0 || (stack.length > 0 && map.get(s[i]) !== stack.pop())) {
             return false;
         }
     } else {
         stack.push(s[i])
     }
    
    } return !stack.length }; ``` | | —- |

20220406,12min

| 20220406```javascript /**

  • @param {string} s
  • @return {boolean} */ // 09:19 -> 09:31 // 栈 var isValid = function(s) { // if (s % 2 !== 0) { // bug:s是字符串,不是字符串的长度 if (s.length % 2 !== 0) { return false; } let stack = []; const map = new Map([ [‘)’, ‘(‘], [‘]’, ‘[‘], [‘}’, ‘{‘], ]) for (let str of s) { if (map.has(str)) { if (stack.length > 0 && map.get(str) === stack[stack.length-1]) {
     stack.pop();
    
    } else {
     return false;
    
    } } else { stack.push(str); } } return !stack.length }; ``` 执行用时:64 ms, 在所有 JavaScript 提交中击败了65.69%的用户
    内存消耗:41.3 MB, 在所有 JavaScript 提交中击败了45.05%的用户
    通过测试用例:91 / 91 | | —- |

20220403,12min

| 20220403```javascript /**

  • @param {string} s
  • @return {boolean} */ // 09:20 -> 09:32 // 栈 // map 记录对应括号信息 // 循环,左括号入栈,右括号匹配map, var isValid = function(s) { const map = new Map([ [‘)’, ‘(‘], [‘]’, ‘[‘], [‘}’, ‘{‘], ]); let stack = []; for (let str of s) { if (map.has(str)) { if (stack[stack.length -1] === map.get(str)) {
     stack.pop();
    
    } else {
     return false;
    
    } } else { stack.push(str); } } return stack.length === 0 }; ``` 知识点
    - 可以再考虑如果s的长度为奇数,则直接返回false
    | | —- |

20220331,

| 20220331:
思路
- 左括号入栈,如果有右括号,出栈
- 循环所有值,最后栈中没有值,则为true,否则为false
算法```javascript /**

  • @param {string} s
  • @return {boolean} */ var isValid = function(s) { let stack = []; const leftArr = [‘(‘, ‘[‘, ‘{‘]; const obj = {
     ')': '(',
     ']': '[',
     '}': '{',
    
    } for (let i = 0; i < s.length; i++) {
     if (leftArr.includes(s[i])) {
         stack.push(s[i])
     }else {
         if (obj[s[i]] === stack[stack.length-1] ) {
             stack.pop();
         } else {
             return false;
         }
     }
    
    } return !stack.length }; ```

    执行用时:60 ms, 在所有 JavaScript 提交中击败了83.49%的用户
    内存消耗:41.2 MB, 在所有 JavaScript 提交中击败了48.74%的用户
    通过测试用例:91 / 91 | | —- |