• [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 ****************************************************************/
  • 相关阅读:
    ExtJs005继承
    ExtJs004define定义类
    ExtJS笔记
    解决vscode-pandoc插件生成pdf中文显示问题
    UDP学习笔记(.NET)
    WPF类库不能添加资源词典(xaml)的解决办法
    解决win10下获取操作系统版本为6.2.900(win8)的问题
    [转] Unit Test 访问Internal类型和方法
    VS2017使用小技巧(持续更新。。。)
    [转]Github遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known host
  • 原文地址:https://www.cnblogs.com/easonliu/p/3673381.html
Copyright © 2020-2023  润新知