js中的栈

栈中的方法

js 复制代码
let stack=[]

每一门编程语言都有数组这个概念,在js这门编程语言里边,数组这种数据结构完全包含了栈这种数据结构。 栈可以称为弱化版本的数组。

js 复制代码
let arr=['a','b','c','d','e']
arr.push('f')//['a','b','c','d','e','f']
arr.pop()//['a','b','c','d']
arr.unshift('hello')//['hello','a','b','c','d','e']
arr.shift()['b','c','d','e']
arr.splice(1,0,'hello')//['hello','a','b','c','d','e']
arr.splice(1,1)//['a','c','d','e']

当我们将数组当作栈来用(先进后出) 的话那么 let stack=[]时候//只有push pop ||unshift shift

有效的括号

给定一个只包含'(' ')','{','}','[ ]'的字符串s,判断字符串是否有效 有效字符串需要满足: 1.左括号必须用相同类型的右括号闭合。 2.左括号必须以正确的顺序闭合 3.每个右括号都有一个对应的相同类型的左括号

js 复制代码
let s='([{}])'
var isValid=function(s){
    const lToR={
       '(':')',
       '[':']',
       '{':'}'
    }
    let stack=[]
    for(let i=0;i<s.length;i++){
      if(s[i]==='('||s[i]==='['||s[i]==='{'){
           stack.push[s[i]]
      }else{//当前获取到的是朝右的括号
          if(!stack.length|| s[i]!=lToR[stack.pop()]){
            return false
          }
      
      }
    }
     if(stack.length){
       return false
     }

};
相关推荐
2401_859049083 分钟前
git submodule update --init --recursive无法拉取解决
前端·chrome·git
j445566117 分钟前
C++中的职责链模式高级应用
开发语言·c++·算法
uesowys10 分钟前
Apache Spark算法开发指导-Decision tree classifier
算法·决策树·spark
池央19 分钟前
贪心算法-最大数
算法·贪心算法
这是个栗子21 分钟前
【Vue代码分析】前端动态路由传参与可选参数标记:实现“添加/查看”模式的灵活路由配置
前端·javascript·vue.js
iAkuya25 分钟前
(leetcode)力扣100 57电话号码的字母组合(回溯)
算法·leetcode·深度优先
刘一说30 分钟前
Vue 动态路由参数丢失问题详解:为什么 `:id` 拿不到值?
前端·javascript·vue.js
m0_7369191037 分钟前
模板元编程性能分析
开发语言·c++·算法
pen-ai44 分钟前
【YOLO系列】 YOLOv1 目标检测算法原理详解
算法·yolo·目标检测
熊猫钓鱼>_>1 小时前
动态网站发布部署核心问题详解
前端·nginx·容器化·网页开发·云服务器·静态部署