使用一个栈来模拟 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(); } };
|