美文网首页
栈的压入 弹出队列

栈的压入 弹出队列

作者: 狗尾巴草败了 | 来源:发表于2017-09-19 11:30 被阅读0次

题目描述

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        stack<int> stackV;
        int pushIndex = 0;
        int popIndex = 0;
        while(pushV[pushIndex] != popV[popIndex]) {
            stackV.push(pushV[pushIndex++]);
        }
        ++popIndex;
        ++pushIndex;
        while(popIndex < popV.size()) {
            if(popV[popIndex] == stackV.top()) {
                stackV.pop();
                ++popIndex;
            }
            else{
                stackV.push(pushV[pushIndex++]);
            }
            //++popIndex;
        }
        if(stackV.empty())
            return true;
        return false;
    }
};

相关文章

  • 栈的压入 弹出队列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字...

  • 经典面试题--两个栈实现一个队列

    1. 基本的实现原理 栈: 先进后出队列: 后进先出 采用一个压入栈 pushStack,一个弹出栈 popSta...

  • 栈的秘密

    栈是一种先进后出的队列(FILO),存入的时候叫压入栈,取出数据时叫弹出栈。栈是一种很重要的数据结构,递归的内部机...

  • 栈的压入弹出

  • 2022-06-09 剑指 Offer 31. 栈的压入、弹出

    模拟法,模拟栈的压入和弹出过程

  • 剑指offer-21~25

    21.栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压...

  • 刷前端面经笔记(十一)

    1.栈的压入和弹出 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压...

  • 31:栈的压入、弹出序列

    题目31:栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序。假...

  • 剑指offer.C++.code21-25

    21. 栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假...

  • 22 栈的压入、弹出序列 (栈混洗 stack permutat

    栈的压入、弹出序列 题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出...

网友评论

      本文标题:栈的压入 弹出队列

      本文链接:https://www.haomeiwen.com/subject/xodwsxtx.html