如果存在一个栈,按照输入的压栈出栈顺序去操作,使得这个栈最后为空了,那么这个压栈和出栈顺序就是合理;
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 };