剑指offer---栈的压入,弹出顺序

class Solution 
{
public:
    bool IsPopOrder(vector<int> pushV, vector<int> popV)
    {

        stack<int> stack1;
        
        int i = 0;
        int j = 0;

        stack1.push(pushV[0]);
        while ((!stack1.empty()) && (j<popV.size()))
        {
        
            if ((stack1.top() != popV[j]) && (i<pushV.size()))
            {
                ++i;
                stack1.push(pushV[i]);
            }
            else if (stack1.top() == popV[j])
            {
                stack1.pop();
                ++j;
            }
            else
            {
                ++j;
            }
        }
        
        if (stack1.empty()) return true;
        else return false;
    }
};

 

posted @ 2017-08-06 18:07  双马尾是老公的方向盘  阅读(169)  评论(0编辑  收藏  举报