题解
2023-08-17 15:57:54
发布于:广东
65阅读
0回复
0点赞
时间击败100%用户
#include <bits/stdc++.h>
using namespace std;
class MinStack { // 为了大家,把模板写好放这里了
private:
stack<int> datastack;
stack<int> sortedstack;
public:
MinStack() {
}
void push(int x) {
datastack.push(x);
if (sortedstack.empty() || x <= sortedstack.top()) {
sortedstack.push(x);
}
}
void pop() {
if (datastack.top() == sortedstack.top()) {
sortedstack.pop();
}
datastack.pop();
}
int top() {
return datastack.top();
}
int getMin() {
return sortedstack.top();
}
bool empty() {
return datastack.empty();
}
};
int main()
{
MinStack st;
int n;
cin>>n;
for(int i=0;i<n;i++)
{
string op;
cin>>op;
if(op=="top")
{
if(!st.empty()) cout<<st.top()<<'\n';
else cout<<"error\n";
}
else if(op=="push")
{
int m;
cin>>m;
st.push(m);
}
else if(op=="pop")
{
if(!st.empty()) st.pop();
else cout<<"error\n";
}
else if(op=="get_min")
{
if(!st.empty()) cout<<st.getMin()<<'\n';
else cout<<"error\n";
}
}
}
这里空空如也
有帮助,赞一个