剑指offer系列源码-包含min函数的栈

来源:互联网 发布:淘宝怎么完成实名认证 编辑:程序博客网 时间:2024/04/30 04:02
题目1522:包含min函数的栈时间限制:1 秒内存限制:128 兆特殊判题:否提交:1495解决:476题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为一个整数n(1<=n<=1000000), n代表将要输入的操作的步骤数。接下来有n行,每行开始有一个字母Ci。Ci=’s’时,接下有一个数字k,代表将k压入栈。Ci=’o’时,弹出栈顶元素。输出:对应每个测试案例中的每个操作,若栈不为空,输出相应的栈中最小元素。否则,输出NULL。样例输入:7s 3s 4s 2s 1oos 0样例输出:3321230

#include<stdio.h>#include<iostream>#include<stack>using namespace std;int main(){   int n;    while(cin>>n){        stack<int> s ;        for(int i=0;i<n;i++){            char ch;            int num;            cin>>ch;            if(ch=='s'){                cin>>num;                if(s.empty()){                    s.push(num);                }else if(s.top()<=num){                    s.push(s.top());                }else {                    s.push(num);                }                printf("%d\n",s.top());            }else {                if(s.empty()){                    printf("NULL\n");                }else{                    if(!s.empty()) s.pop();                    if(s.empty()){                        printf("NULL\n");                    }else{                        printf("%d\n",s.top());                    }                }            }        }    }}
oj地址
0 0
原创粉丝点击