链接:https://www.nowcoder.com/courses/1/4/4
来源:牛客网
编写一个类,只能用两个栈结构实现队列,支持队列的基本操作(push,pop)。
给定一个操作序列ope及它的长度n,其中元素为正数代表push操作,为0代表pop操作,保证操作序列合法且一定含pop操作,请返回pop的结果序列。
测试样例:
[1,2,3,0,4,0],6
返回:[1,2]`
class TwoStack {
public:
vector<int> twoStack(vector<int> ope, int n) {
// write code here
stack<int> stackpush;
stack<int> stackpop;
vector<int> ivec;
int m=0;
for(int i=0;i<n;i++)
{
if(ope[i]>0)
{
stackpush.push(ope[i]);
m++;
}
}
for(int i=0;i<m;i++)
{
int l=stackpush.top();
stackpush.pop();
stackpop.push(l);
}
for(int i=0;i<n;i++)
{
if(ope[i]==0)
{
int m=stackpop.top();
stackpop.pop();
ivec.push_back(m);
}
}
return ivec;
}
};