题目描述

现在给你一个栈,它一开始是空的,你需要模拟栈的操作。栈的操作包括如下:

  1. “push x”:将元素 x 放入栈中,其中x是一个int范围内的整数;
  2. “pop”,将栈顶元素取出来,如果此时栈是空的,那么我们不进行任何操作;
  3. “top”,输出栈顶元素对应的值,如果此时栈是空的,那么我们需要输出一个字符串“empty”;
  4. “size”,输出当前栈中元素的个数。

输入格式

第一行一个正整数 n (1≤n≤100000),用于表示操作的数量。

接下来 n 行,每行可能是如下结构:

  1. “push x”:将元素 x 放入栈中,其中x是一个int范围内的整数;
  2. “pop”,将栈顶元素取出来,如果此时栈是空的,那么我们不进行任何操作;
  3. “top”,输出栈顶元素对应的值,如果此时栈是空的,那么我们需要输出一个字符串“empty”;
  4. “size”,输出当前栈中元素的个数。

输出格式

你需要判断每一行输入,并执行对应的操作。

样例输入

9
push 3
push 5
top
size
pop
pop
pop
top
size

样例输出

5
2
empty
0

样例解释

step.1: 将3 push 入栈,此时栈中元素(从顶到底)为:[ 3 ]

step.2: 将5 push 入栈,此时栈中元素(从顶到底)为:[ 5, 3 ]

step.3: 输出栈顶元素,此时栈顶元素为5,所以输出“5”

step.4: 输出栈中元素个数,此时栈中元素个数为2,所以输出“2”

step.5: 将栈顶元素出栈,栈顶元素5出栈后,栈中元素(从顶到底)为:[ 3 ]

step.6: 将栈顶元素出栈,栈顶元素3出栈后,栈中元素(从顶到底)为:[ ] , 是一个空栈了

step.7: 将栈顶元素出栈,按时因为这个时候栈已经空了,所以我们什么操作都不做

step.8: 输出栈顶元素,此时栈为空,所以输出“empty”

step.9: 输出栈中元素个数,此时栈中元素个数为0,所以输出“0”

P1029 栈的基础操作的更多相关文章

  1. python基础操作以及hdfs操作

    目录 前言 基础操作 hdfs操作 总结 一.前言        作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...

  2. 原创】Java并发编程系列2:线程概念与基础操作

    [原创]Java并发编程系列2:线程概念与基础操作 伟大的理想只有经过忘我的斗争和牺牲才能胜利实现. 本篇为[Dali王的技术博客]Java并发编程系列第二篇,讲讲有关线程的那些事儿.主要内容是如下这 ...

  3. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  4. 【Learning Python】【第二章】Python基础类型和基础操作

    基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...

  5. Emacs学习心得之 基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础操作 1.前言与学习计划2.Emacs基础操作 一. 前言与学习计 ...

  6. Git基础操作

    配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...

  7. activiti基础操作

    package activitiTest; import java.io.InputStream; import java.util.List; import java.util.zip.ZipInp ...

  8. 《Genesis-3D开源游戏引擎-官方录制系列视频教程:基础操作篇》

    注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D基础操作   第一课<G3D编辑器初探> G3D编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...

  9. 《深入Java虚拟机学习笔记》- 第10章 栈和局部变量操作

    Java栈和局部变量操作 Java虚拟机是基于栈的机器,几乎所有Java虚拟机的指令都与操作数栈相关.栈操作包括把常量压入操作数栈.执行通用的栈操作.在操作数栈和局部变量之间往返传输值. 1常量入栈操 ...

随机推荐

  1. 【JZOJ4792】【NOIP2016提高A组模拟9.21】整除

    题目描述 麦克雷有一个1~n的排列,他想知道对于一些区间,有多少对区间内的数(x,y),满足x能被y整除. 输入 第一行包含2个正整数n,m.表示有n个数,m个询问. 接下来一行包含n个正整数,表示麦 ...

  2. Redis、MPP、kafka 、MongDB简介

    Redis :间值数据库,适合缓存用户Session会话与经常需要查的数据1.Redis集群,为什么在项目中使用集群  1.持久化,持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要左右 ...

  3. Tumblr,instapaper分享

    <div id="bshare-custom"> <a title="分享到Tumblr" id="bshare-tumblr&qu ...

  4. 基于OPNET的路由协议仿真教程(AODV、OLSR 、DSR等)

    前言: 目前由于项目需要,学习了基于opnet的网络仿真方法,发现该软件的学习资料少之又少,所以将自己搜集到的学习资料进行整理,希望能帮助后来的人. 主要参考资料:OPNET网络仿真(清华陈敏版) 仿 ...

  5. qbao

    # -*- coding: utf-8 -*- import Image, cStringIO, webbrowser, re, time, math import urllib, urllib2, ...

  6. 关于element-ui的弹框问题

    el-dialog获取数据. el-dialog加载到页面中的时候,其实已经加载好了.只是默认隐藏了. 第一次点击的时候弹出,为何拿不到数据?之后再次操作就一点问题都没有了.

  7. AtCoder Regular Contest 094 D Worst Case【思维题】

    https://arc094.contest.atcoder.jp/tasks/arc094_b 题意: 在2次超多人的比赛中,你取得的成绩依次为第A名和第B名.一个人的成绩为a和b时,当且仅当ab& ...

  8. 重装系统后ORACLE数据库恢复的方法

    如果我们的操作系统出现问题,重装系统后,ORACLE数据库应该如何恢复呢?下文就为您列举了两个重装系统后ORACLE数据库恢复的方法,供您参考. ORACLE数据库恢复的方法我们经常会用到,下面就为您 ...

  9. HDU_1021:Fibonacci Again

    Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) ...

  10. 强制去除xcode的编译警告

    使用 #pragma clang diagnostic ignored 语法来强制去除xcode的编译警告,代码举例如下: #pragma clang diagnostic push #pragma ...