zoukankan      html  css  js  c++  java
  • [Jobdu] 题目1522:包含min函数的栈

    题目描述:

    定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

    输入:

    输入可能包含多个测试样例,输入以EOF结束。
    对于每个测试案例,输入的第一行为一个整数n(1<=n<=1000000), n代表将要输入的操作的步骤数。
    接下来有n行,每行开始有一个字母Ci。
    Ci=’s’时,接下有一个数字k,代表将k压入栈。
    Ci=’o’时,弹出栈顶元素。

    输出:

    对应每个测试案例中的每个操作,
    若栈不为空,输出相应的栈中最小元素。否则,输出NULL。

    样例输入:
    7
    s 3
    s 4
    s 2
    s 1
    o
    o
    s 0
    样例输出:
    3
    3
    2
    1
    2
    3
    0

    很简单,再用一个栈用来存储当前的最小值,当新元素比当前最小值小时,将其入min栈,出栈时,如果栈顶元素就是当前最小值,则将出从min栈弹出。

     1 #include <iostream>
     2 #include <stack>
     3 #include <cstdio>
     4 using namespace std;
     5  
     6 int n, a;
     7 char ci;
     8  
     9 int main() {
    10     //freopen("a.in", "r", stdin);
    11     while (cin >> n) {
    12         stack<int> s;
    13         stack<int> min;
    14         while (n--) {
    15             cin >> ci;
    16             if (ci == 's') {
    17                 cin >> a;
    18                 s.push(a);
    19                 if (min.empty() || a < min.top())
    20                     min.push(a);
    21             } else if (ci == 'o') {
    22                 if (s.top() == min.top()) 
    23                     min.pop();
    24                 s.pop();
    25             }
    26             if (min.empty())
    27                 cout << "NULL" << endl;
    28             else
    29                 cout << min.top() << endl;
    30         }
    31     }
    32     return 0;
    33 }
    34 /**************************************************************
    35     Problem: 1522
    36     User: hupo250
    37     Language: C++
    38     Result: Accepted
    39     Time:120 ms
    40     Memory:1524 kb
    41 ****************************************************************/
  • 相关阅读:
    JS的应用(document对象)
    JS的应用(windows对象二)
    JS的应用(windows对象一)
    递归
    函数使用规则和JS内自带的一些函数
    学习笔记之HTML(十秒倒计时;列表收起、展开;下拉列表;
    学习笔记之大图轮播加圆点
    学习笔记之函数类型,for循环,练习
    学习笔记之for循环if循环小练习
    学习笔记之09for循环8个小练习
  • 原文地址:https://www.cnblogs.com/easonliu/p/3673381.html
Copyright © 2011-2022 走看看