题解 | #栈的压入、弹出序列#
栈的压入、弹出序列
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();
}
};
凡岛公司福利 674人发布
