CodingInterview-栈的压入、弹出序列

使用一个栈来模拟 push 和 pop 的过程即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
if(pushV.size()!=popV.size()) return false;
int len=pushV.size();
if(len==0) return true;
stack<int> s;
int pushI=0;
int popI=0;
while(pushI<len || popI<len){
if(!s.empty() && popI<len && s.top()==popV[popI]){
s.pop();
popI++;
}else if(pushI<len){
s.push(pushV[pushI]);
pushI++;
}else break;
}
return s.empty();
}
};