思路
按照入栈顺序依次push,当遇到栈顶元素和出栈序列的元素相等时,pop(自动更新栈顶,出栈序列的索引+1)
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
/*
* 新建一个栈,全部push,当top元素与输出序列的对应元素相等时,pop
*/
stack<int> push_stack;
int j=0; // 代表输出序列的第几个元素
for(int i = 0; i<pushV.size(); i++){
push_stack.push(pushV[i]);
while(!push_stack.empty() && push_stack.top()==popV[j]){
push_stack.pop();
j++;
}
}
return push_stack.empty();
}
}; 
京公网安备 11010502036488号