
AcWing 829. 模拟队列
发布日期:2021-05-07 14:08:26
浏览次数:22
分类:原创文章
本文共 1824 字,大约阅读时间需要 6 分钟。
实现一个队列,队列初始为空,支持四种操作:
(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 6emptyquerypopemptypush 3push 4popquerypush 6
输出样例:
NO6YES4
import java.io.*;import java.lang.Integer;class Main{ static int N = 100010; static int[] que = new int[N]; static int hh = 0, tt = -1; static void push(int x){ que[++tt] = x; } static void pop(){ if(!empty()) hh++; } static boolean empty(){ if(hh <= tt)return false; return true; } static int query(){ if(!empty())return que[hh]; return -1; } public static void main(String[] args)throws Exception{ BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter buw = 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)buw.write("YES\n"); else buw.write("NO\n"); }else{ int res = query(); if(res > 0)buw.write(res + "\n"); } } buw.flush(); buf.close(); buw.close(); }}
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月13日 01时20分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux 下安装kolla报错 提示Cannot uninstall requests
2019-03-04
C++ throw、try、catch、noexcept
2019-03-04
设计模式之组合模式
2019-03-04
Linux 验证、数字证书、RPM包中文件的提取
2019-03-04
(恋上数据结构笔记):优先级队列(Priority Queue)
2019-03-04
(Python学习笔记):字典
2019-03-04
(C++11/14/17学习笔记):并发基本概念及实现,进程、线程基本概念
2019-03-04
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
2019-03-04
(C++11/14/17学习笔记):创建多个线程、数据共享问题分析及案例
2019-03-04
(音视频学习笔记):SDL-YUV显示-播放音频PCM
2019-03-04
leetcode 14 最长公共前缀
2019-03-04
做做Java
2019-03-04
2020-2021新技术讲座课程
2019-03-04
shell中的数学运算
2019-03-04
如何使用4G模块通过MQTT协议传输温湿度数据到onenet
2019-03-04
map的find函数和count函数
2019-03-04
C++并发与多线程(一)
2019-03-04
C++ 并发与多线程(五)
2019-03-04
7628 EDCCA认证寄存器修改(认证自适应)
2019-03-04