其实是抱着试试看的态度来写的,感觉颇具有挑战力,第一次写出来个半成品还是有点成就感的,遇到的小坑就是,忘记了const是不可以修改的,要用let写变量
题目相当于是给了一个数组的两种排序方式,一边是push进去的,一遍是pop出来的,让看经过一番操作,栈是否为空。
刚巧最近看过栈相关的知识,其实也就只会个push和pop,浅浅尝试一下
先定义数组来模拟栈,遍历pushed数组,将元素push进去栈,在过程中,只要是栈不空的情况下,判断栈顶元素和我们想要pop出去的元素是否一致,相等则弹出,并且poped数组index加一。
上代码
/**
* @param {number[]} pushed
* @param {number[]} popped
* @return {boolean}
*/
var validateStackSequences = function(pushed, popped) {
const stack=[];
let j=0;
for(let i=0;i<pushed.length;i++) {
stack.push(pushed[i])
while((stack.length != 0) && (popped[j]===stack[stack.length-1])) {
j++;
stack.pop()
}
}
return stack.length===0
};