题解 | #栈的压入、弹出序列#
栈的压入、弹出序列
http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106
思路
按照入栈顺序依次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(); } };