栈中的方法
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
}
};