当前位置: 首页 > news >正文

题解:AcWing 828 模拟栈

【题目来源】

AcWing:828. 模拟栈 - AcWing题库

【题目描述】

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

  1. push x – 向栈顶插入一个数 \(x\)
  2. pop – 从栈顶弹出一个数;
  3. empty – 判断栈是否为空;
  4. query – 查询栈顶元素。

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

【输入】

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

接下来 \(M\) 行,每行包含一个操作命令,操作命令为 push xpopemptyquery 中的一种。

【输出】

对于每个 emptyquery 操作都要输出一个查询结果,每个结果占一行。

其中,empty 操作的查询结果为 YESNOquery 操作的查询结果为一个整数,表示栈顶元素的值。

【输入样例】

10
push 5
query
push 6
pop
query
pop
empty
push 4
query
empty

【输出样例】

5
5
YES
4
NO

【解题思路】

image

【算法标签】

《AcWing 828 模拟栈》 #栈#

【代码详解】

// 使用数组模拟
#include <bits/stdc++.h>
using namespace std;const int N = 100010;        // 定义栈的最大容量string op;                   // 存储操作命令
int m;                       // 操作次数
int stk[N];                  // 栈数组
int top;                     // 栈顶指针,指向当前栈顶元素的位置int main()
{// 输入操作次数cin >> m;int x;  // 临时变量,用于存储输入的数字// 循环处理每个操作while (m--){// 输入操作命令cin >> op;// 根据操作命令执行相应操作if (op == "push"){// 入栈操作:将元素压入栈顶cin >> x;                // 输入要入栈的元素stk[++top] = x;          // 栈顶指针先加1,然后存入元素}else if (op == "pop"){// 出栈操作:弹出栈顶元素x = stk[top--];          // 先取出栈顶元素,然后栈顶指针减1}else if (op == "empty"){// 判断栈是否为空// 如果top不为0,栈非空,输出"NO";否则输出"YES"cout << (top ? "NO" : "YES") << endl;}else{// 查询栈顶元素操作cout << stk[top] << endl;  // 输出栈顶元素,但不弹出}}return 0;
}

【运行结果】

10
push 5
query
5
push 6
pop
query
5
pop
empty
YES
push 4
query
4
empty
NO
http://www.jsqmd.com/news/399263/

相关文章:

  • 深度解析AI原生应用领域的事件驱动机制
  • 大数据ETL处理:GPU加速方案设计与性能优化
  • C语言中的数据类型和变量
  • 题解:AcWing 827 双链表
  • 题解:AcWing 826 单链表
  • 题解:AcWing 802 区间和
  • js获取html相邻标签
  • 题解:AcWing 803 区间合并
  • 计算机毕业设计 | SpringBoot+vue科研项目验收管理系统(附源码+论文)
  • 计算机毕业设计 | SpringBoot+vue毕业论文管理系统 高校文档项目答辩平台(附源码+论文)
  • 计算机毕业设计 | SpringBoot+vue中山社区医疗综合服务平台(附源码+论文)
  • Flink 任务失败恢复机制Restart Strategy 和 Failover Strategy 怎么配才“又稳又不炸”
  • Tauri 前端配置把任何前端框架“正确地”接进 Tauri(含 Vite/Next/Nuxt/Qwik/SvelteKit/Leptos/Trunk)
  • 计算机毕业设计 | SpringBoot+vue毕业设计答辩平台 校园成绩管理系统(附源码+论文)
  • Tauri 项目结构前端壳 + Rust 内核,怎么协作、怎么构建、怎么扩展
  • 抖音评论自动采集|拓客|免登录
  • 当Claude Code负责人说amp;quot;编程已解决amp;quot;,测试工程师该慌吗?
  • Claude Code 安装教程(macOS / Linux / Windows PowerShell 一键脚本)【2026 最新】
  • 题解:AcWing 801 二进制中1的个数
  • 寒假第二十天
  • 一文彻底搞懂强化学习
  • js XMLHttpRequest编程误区(复用这个对象导致的冲突问题)
  • 当Claude Code负责人说编程已解决,测试工程师该慌吗?
  • vue+springboot线上学生作业批改考试系统_6li288nu
  • pythonQT图书管理系统的进阶版本
  • vue+springboot基于线性回归的音乐推荐系统 爬虫 数据分析可视化大屏5
  • 一天一个Python库:httpcore - 异步HTTP核心库
  • vue+springboot基于聚类算法的美妆产品网络评价系统的化妆品爬虫数据采集与可视化分析系统
  • JAVA虚拟机-JVM
  • vue+springboot甜点蛋糕商城系统 团子烘焙销售服务系统