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
     }

};
相关推荐
小码哥_常6 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮8 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
她说可以呀9 小时前
Vue插槽
前端·javascript·vue.js
qq_448011169 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
aixingpan10 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_9583529010 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
UIU11410 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
论文复现现场11 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi11 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
志尊宝11 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native