$\color{red}{分析}$
压入栈顺序是否一致关键在于:操作完后,栈是否为空。
模拟退栈操作:退一个元素、退多个元素 两种情况。可以用 while 循环来操作。
class Solution {
public:
bool isPopOrder(vector<int> pushV,vector<int> popV) {
if(pushV.empty() && popV.empty()) return true;
stack<int> stk;
int k = 0;
for(int i = 0; i < pushV.size(); ++ i)
{
stk.push(pushV[i]);
if(stk.top() == popV[k])
while(stk.size() && stk.top() == popV[k]) //退多个元素
stk.pop(), k ++;
}
return !stk.size() && k == popV.size();
}
};