代码随想录算法训练营第十天| 232.用栈实现队列、225. 用队列实现栈
232.用栈实现队列
class MyQueue {
public:
MyQueue() {
}
void push(int x) {
while (!_s1.empty()) {
_s2.push(_s1.top());
_s1.pop();
}
_s2.push(x);
while (!_s2.empty()) {
_s1.push(_s2.top());
_s2.pop();
}
}
int pop() {
int front = _s1.top();
_s1.pop();
return front;
}
int peek() {
return _s1.top();
}
bool empty() {
return _s1.empty();
}
private:
stack<int> _s1;
stack<int> _s2;
};
/**
* 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();
*/
459.重复的子字符串
class MyStack {
public:
MyStack() {
}
void push(int x) {
while (!_q1.empty()) {
_q2.push(_q1.front());
_q1.pop();
}
_q1.push(x);
while (!_q2.empty()) {
_q1.push(_q2.front());
_q2.pop();
}
}
int pop() {
int top = _q1.front();
_q1.pop();
return top;
}
int top() {
return _q1.front();
}
bool empty() {
return _q1.empty();
}
private:
queue<int> _q1;
queue<int> _q2;
};
/**
* 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();
*/