栈进出模拟

  • 直接用一个栈去模拟,而不是探究规律
  • 注意判断都为空情况
  • 考虑栈为空情况
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pushV int整型vector 
     * @param popV int整型vector 
     * @return bool布尔型
     */
    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
        // write code here
        //栈为空
        if(pushV.empty()&&popV.empty())
        {
            return true;
        }
        stack<int> s;
        int i=0;
        for(auto& n:popV)
        {
            while(s.empty()||s.top()!=n)
            {
                if(i>=pushV.size())
                {
                    return false;
                }
                s.push(pushV[i]);
                i++;
                
            }
            s.pop();
            //找到相同的元素
        }
        return true;
    }
};