题目:232
class MyQueue {
private:
std::stackA,B;
public:
MyQueue() {
}
void push(int x) {
A.push(x);
}
int pop() {
int peek=this->peek();
B.pop();
return peek;
}
int peek() {
if(!B.empty()) return B.top();
if(A.empty()) return -1;
while(!A.empty()){
B.push(A.top()), A.pop();
}
int res=B.top();
return res;
}
bool empty() {
return A.empty()&&B.empty();
}
};
/**
-
Your MyQueue object will be instantiated and called as such:
-
MyQueue* obj = new MyQueue();
-
obj->push(x);
-
int param_2 = obj->pop();
-
int param_3 = obj->peek();
-
bool param_4 = obj->empty();
*/
题目:225
class MyStack {
public:
queuequeue1;
queuequeue2;
MyStack() {}
void push(int x) {
queue2.push(x);
while(!queue1.empty()){
queue2.push(queue1.front());
queue1.pop();
}
swap(queue1,queue2);}
int pop() {
int r=queue1.front();
queue1.pop();
return r;}
int top() {
int r=queue1.front();
return r;}
bool empty() {
return queue1.empty();}
};
/**
- Your MyStack object will be instantiated and called as such:
- MyStack* obj = new MyStack();
- obj->push(x);
- int param_2 = obj->pop();
- int param_3 = obj->top();
- bool param_4 = obj->empty();
*/