946.验证栈序列
/**
* @param {number[]} pushed
* @param {number[]} popped
* @return {boolean}
*/
var validateStackSequences = function (pushed, popped) {
// 定义一个栈,不断的往里面入栈元素,当遇到可以出栈的元素,先把该元素出栈,再继续其他元素入栈
const stack = []
while (pushed.length) {
// 先入栈
stack.push(pushed.shift())
// 每次获取栈顶元素,与popped相比看是否符合出栈
while (stack.length) {
const top = stack[stack.length - 1]
if (top === popped[0]) { // 符合出栈,先出栈
stack.pop()
popped.shift()
} else { // 否则继续执行入栈操作
break
}
}
}
return stack.length === 0
};