【C++】 ——牛客题解之判断是否为栈的弹出序列

题目描述

【C++】 ——牛客题解之判断是否为栈的弹出序列_第1张图片
思路:将数组中的元素压入栈中的同时,将栈顶元素和popV里面的元素进行比较,相等则出栈,不相等则继续入栈,直到元素全部入栈,最后判断栈中的元素是否为空,如果为空,则返回true,不为空返回false

代码:

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

        
    }
};

你可能感兴趣的:(牛客力扣习题分析,C++)