剑指Offer系列-面试题22:栈的压入、弹出序列

来源:互联网 发布:怎么看淘宝商品编号 编辑:程序博客网 时间:2024/05/21 09:56

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

思路:

代码:

bool IsPopOrder(vector<int> pushV,vector<int> popV){    bool result = false;    if(pushV.size() > 0) /// 边界条件判断    {        int size = pushV.size();        stack<int> data;        int index = 0;        for(int i = 0; i < size; i++)        {            data.push(pushV[i]);            while(!data.empty() && data.top() == popV[index])            {                data.pop();                index++;            }        }        if(data.empty())        {            result = true;        }    }    return result;}


0 0
原创粉丝点击