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
     }

};
相关推荐
clock的时钟13 分钟前
暑期数据结构第一天
数据结构·算法
忧郁的蛋~13 分钟前
HTML表格导出为Excel文件的实现方案
前端·html·excel
小彭努力中14 分钟前
141.在 Vue 3 中使用 OpenLayers Link 交互:把地图中心点 / 缩放级别 / 旋转角度实时写进 URL,并同步解析显示
前端·javascript·vue.js·交互
然我34 分钟前
别再只用 base64!HTML5 的 Blob 才是二进制处理的王者,面试常考
前端·面试·html
NanLing36 分钟前
【纯前端推理】纯端侧 AI 对象检测:用浏览器就能跑的深度学习模型
前端
小小小小王王王37 分钟前
求猪肉价格最大值
数据结构·c++·算法
呆呆的心38 分钟前
前端必学:从盒模型到定位,一篇搞定页面布局核心 🧩
前端·css
小飞悟38 分钟前
前端高手才知道的秘密:Blob 居然这么强大!
前端·javascript·html
小old弟39 分钟前
用Sass循环实现炫彩文字跑马灯效果
前端
code_YuJun39 分钟前
Promise 基础使用
前端·javascript·promise