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

栈的压入、弹出序列

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

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        if(pushV.empty()||popV.empty())
            return false;
        if(pushV.size()!=popV.size())
            return false;

        stack<int> s1;
        int j=0;

        for(int i=0;i!=popV.size();)
        {

             do
             {
                   if(!s1.empty()&&popV[i]==s1.top()||j==pushV.size())
                     break;                     
                    s1.push(pushV[j]);
                    ++j;

             }while(j!=pushV.size()&&popV[i]!=s1.top());



            if(popV[i]==s1.top())
            {
                ++i;
                s1.pop();
            }else
                return false;


        }

        return true;
    }
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务