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
     }

};
相关推荐
To_OC7 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
咩咩啃树皮8 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny8 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹8 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
旖-旎8 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
阳光是sunny8 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
To_OC9 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
小林ixn9 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker9 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
delishcomcn10 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法