如果存在一个栈,按照输入的压栈出栈顺序去操作,使得这个栈最后为空了,那么这个压栈和出栈顺序就是合理;
function IsPopOrder(pushV, popV)
{
// write code here
//辅助栈
let helpV = [];
//遍历弹出序列的下标
let i = 0;
//按压入顺序 往辅助栈压入
pushV.forEach((n)=>{
helpV.push(n);
while(helpV.length !== 0 && helpV[helpV.length -1] == popV[i]){
//如果辅助栈顶元素与当前出栈元素相等,弹出
helpV.pop();
i++;
}
});
//如果辅助栈为空,说明是合理的出栈
if(helpV.length !== 0) return false;
return true;
}
module.exports = {
IsPopOrder : IsPopOrder
};



京公网安备 11010502036488号