zoukankan      html  css  js  c++  java
  • 数据结构题目1 判断括号是否准确闭合

    js

    具体思路,让左括号( { [ 放入栈中,放完之后  取出栈顶元素 如果在map结构中存在,则正确闭合否则返回false; 

    // 比较灵巧的是用了map数据结构检测是否闭合  不比用对象了,方便很多
    function isValid(s) {
        const stack = [];
        let myMap = new Map([[')', '('], [']', '['], ['}', '{']]);
        for(let i = 0, c; i < s.length - 1, c = s[i];i++) {
            if(!myMap.has(c)) {
                stack.push(c);
            }
            else if(stack.length === 0 || myMap.get(c) !== stack.pop()) {
                return false;
            }
        }
        return stack.length === 0;
    }

    const leftToRight = {
      "(":")",
      "{": "}",
      "[": "]"  
    }
    // 思路是 最开始肯定先出现左括号, 让左边括号,对应的右括号入栈,然后对比之后的右括号,如果一样就从栈里面pop出来,如果栈为空,那么说明是闭合的;
    let isValid = (s) => {
      let stack = [];
      let len = s.length;  
      for(let i = 0;i<len;i++){
         let str = s[i]
         if('(' === str || '{' === str || '[' === str){
              stack.push(leftToRight[str])
         }else{
              if(!stack.length || str !== stack.pop()){
                   return false
              }
         }
      }
      return !stack.length;
    }
  • 相关阅读:
    Java 老兵不死,Kotlin 蓄势待发
    程序员写代码时戴着耳机,在听什么?
    推荐 7 个提升前端编程效率的 VSCode 插件
    去掉烦人的 !=null
    透析!软件开发未来 10 年的 8 个趋势
    10月01日总结
    09月29日总结
    09月28日总结
    09月27日总结
    09月26日总结
  • 原文地址:https://www.cnblogs.com/qqfontofweb/p/14984007.html
Copyright © 2011-2022 走看看