博客
关于我
AcWing 828. 模拟栈
阅读量:347 次
发布时间:2019-03-04

本文共 1795 字,大约阅读时间需要 5 分钟。

实现一个栈,栈初始为空,支持四种操作:

(1) “push x” – 向栈顶插入一个数x;

(2) “pop” – 从栈顶弹出一个数;

(3) “empty” – 判断栈是否为空;

(4) “query” – 查询栈顶元素。

现在要对栈进行M个操作,其中的每个操作3和操作4都要输出相应的结果。

输入格式

第一行包含整数M,表示操作次数。

接下来M行,每行包含一个操作命令,操作命令为”push x”,”pop”,”empty”,”query”中的一种。

输出格式

对于每个”empty”和”query”操作都要输出一个查询结果,每个结果占一行。

其中,”empty”操作的查询结果为“YES”或“NO”,”query”操作的查询结果为一个整数,表示栈顶元素的值。

数据范围

1≤M≤1000001≤M≤100000,

1≤x≤1091≤x≤109
所有操作保证合法。

输入样例:

10push 5querypush 6popquerypopemptypush 4queryempty

输出样例:

55YES4NO
import java.io.*;import java.lang.Integer;class Main{    static int N = 100010;    static int[] st = new int[N];    static int tt = 0;        static void push(int x){        st[++tt] = x;    }    static void pop(){        if(!empty())            tt--;    }    static boolean empty(){        if(tt > 0)return false;        return true;    }    static int query(){        if(!empty())            return st[tt];        return -1;    }            public static void main(String[] args)throws Exception{        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));        BufferedWriter pw = new BufferedWriter(new OutputStreamWriter(System.out));        int n = Integer.valueOf(buf.readLine());        for(int i = 0; i < n; ++i){            String[] params = buf.readLine().split(" ");            if("push".equals(params[0])){                int x = Integer.valueOf(params[1]);                push(x);            }else if("pop".equals(params[0])){                pop();            }else if("empty".equals(params[0])){                boolean res = empty();                if(res)pw.write("YES\n");                else pw.write("NO\n");            }else{                int res = query();                if(res > 0)pw.write(res + "\n");            }        }        pw.flush();        buf.close();        pw.close();    }}

 

转载地址:http://okre.baihongyu.com/

你可能感兴趣的文章
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 模型中的偏差和公平性检测
查看>>
Vue3.0 性能提升主要是通过哪几方面体现的?
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP、CV 很难入门?IBM 数据科学家带你梳理
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>
NLP入门(六)pyltp的介绍与使用
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP度量指标BELU真的完美么?
查看>>
NLP的不同研究领域和最新发展的概述
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道
查看>>
NLP:从头开始的文本矢量化方法
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
NLTK - 停用词下载
查看>>
nmap 使用总结
查看>>
nmap 使用方法详细介绍
查看>>