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

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
};