栈的压入 弹出序列

来源:互联网 发布:装载xml数据方法异常 编辑:程序博客网 时间:2024/05/22 03:30
题目描述

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

 bool IsPopOrder(vector<int> pushV,vector<int> popV) {              stack<int> st;        int i=0,j=0;        int N=pushV.size();        if(N==0)            return false;                while(j<N)        {            while(st.empty() || st.top()!=popV[j])            {                if(i==N)                    break;                st.push(pushV[i]);                i++;                       }            if(st.top()!=popV[j])                return false;            st.pop();            j++;        }        if(j==N && st.empty())            return true;        return false;    }


0 0
原创粉丝点击