题解 | #栈的压入、弹出序列#
栈的压入、弹出序列
http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
int i=0, j=0;
stack<int>stack1;
while(i<pushV.size()){
if(pushV[i]!=popV[j]){//如果不相等,则进栈
stack1.push(pushV[i]);
i++;
}
else{
//如果两数相等,则两数分别都向后移
i++;j++;
//然后判断此时的栈顶和popV的数是否相等
while(stack1.size()>0&&stack1.top()==popV[j]){
//此时要出栈,popV的元素后移
stack1.pop();
j++;
}
}
}
return stack1.empty();
}
};