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
     }

};
相关推荐
C++ 老炮儿的技术栈3 分钟前
什么是通信规约
开发语言·数据结构·c++·windows·算法·安全·链表
@大迁世界6 分钟前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
GIS之路15 分钟前
GDAL 实现矢量裁剪
前端·python·信息可视化
零小陈上(shouhou6668889)15 分钟前
K-近邻算法 - lazy learning的代表
算法·近邻算法
是一个Bug18 分钟前
后端开发者视角的前端开发面试题清单(50道)
前端
Amumu1213820 分钟前
React面向组件编程
开发语言·前端·javascript
有一个好名字21 分钟前
力扣-从字符串中移除星号
java·算法·leetcode
萧瑟其中~25 分钟前
二分算法模版——基础二分查找,左边界查找与右边界查找(Leetcode的二分查找、在排序数组中查找元素的第一个位置和最后一个位置)
数据结构·算法·leetcode
码上就好ovo27 分钟前
Atcoder Beginnner Contest 440
算法