题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

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

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
};
全部评论

相关推荐

炫哥_:哥们项目描述里面vector和mysql之类的都要写吗,直接开头技术栈巴拉巴拉就行了,完全不是技术点啊
点赞 评论 收藏
分享
VirtualBool:都去逗他了?
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务