思路
pushV的内容是依次输入的内容,用for即可。
在每次压栈时进行判断,栈顶元素是否和popV中的数据相同。
如果相同popV指针向后移动,依次进行匹配(这里需要循环判断),因为每轮判断中只能压入一个元素,但是弹出可以连续弹出。
class Solution {
public:
bool isPopOrder(vector<int> pushV,vector<int> popV) {
// if(pushV.size())
if(pushV.size() != popV.size()) return false;
else if(pushV.size() == 0) return true;
stack<int> stk;
for(int i = 0,j = 0; i < pushV.size(); i ++){
int x = pushV[i];
stk.push(x);
while(stk.size() && stk.top() == popV[j]){
stk.pop();
j++;
}
}
return stk.empty();
}
};