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

栈-模拟栈

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

  1. push x – 向栈顶插入一个数 x;

  2. pop – 从栈顶弹出一个数;

  3. empty – 判断栈是否为空;

  4. query – 查询栈顶元素。

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

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 100010;
int stk[N],tt;int main()
{tt = 0;//一直表示栈顶元素 每push一个元素 tt+1 此时tt+1就是栈顶int m;cin>>m;while(m--){string op;cin>>op;int x;if(op == "push"){cin>>x;stk[++tt] = x;//入栈 tt+1 tt+1是栈顶}else if(op == "pop"){tt--;//如果一开始tt=5 则stk[5]是栈顶元素 pop一下 stk[4]变成栈顶元素 // tt-1 后面有入栈push的话 stk[5]原有的值正好被取代}else if(op == "empty"){cout<<(tt ? "NO" : "YES")<<endl;// 这里代表 如果tt不是0 那就是no非空 tt是0 就是yes空}else{cout<<stk[tt]<<endl;}}return 0;
}

输入样例:

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

输出样例:

5
5
YES
4
NO

具体模板和算法解释详情见Acwing算法基础课:活动 - AcWing

相关文章:

栈-模拟栈

实现一个栈&#xff0c;栈初始为空&#xff0c;支持四种操作&#xff1a; push x – 向栈顶插入一个数 x&#xff1b; pop – 从栈顶弹出一个数&#xff1b; empty – 判断栈是否为空&#xff1b; query – 查询栈顶元素。 现在要对栈进行 M 个操作&#xff0c;其中的每个…...

图观| 从王宝强、费翔、阿汤哥等新上映的电影聊聊图的智能推荐场景

从技术的视角来看&#xff0c;推荐系统本质上是在用户需求不明确的情况下&#xff0c;从海量的信息中为用户过滤出他可能感兴趣的信息的一种技术手段。 我们日常接触到的智能推荐有&#xff1a; 电商网站&#xff1a;如淘宝、天猫、京东、Amazon…… 生活服务&#xff1a;如美…...

Redis系列一:介绍

介绍 The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. 相关资源 Redis 官网&#xff1a;https://redis.io/ 源码地址&#xff1a;https://github.com/redis/redis Redis 在线测试&#…...

Java 设计模式 - 单例模式 - 保证类只有一个实例

单例模式 - 保证类只有一个实例 为什么使用单例模式&#xff1f;单例模式的实现方式1. 饿汉式&#xff08;Eager Initialization&#xff09;2. 懒汉式&#xff08;Lazy Initialization&#xff09;3. 双重检查锁&#xff08;Double-Checked Locking&#xff09;4. 静态内部类&…...

第2章 JavaScript语法

准备工作 编写js需要准备一个编译器和游览器&#xff0c;js必须通过HTML/XHTML文档编写 js的编写位置 <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docume…...

【Golang】Golang进阶系列教程--为什么 Go for-range 的 value 值地址每次都一样?

文章目录 前言现象无限循环相同地址 原因推荐阅读 前言 循环语句是一种常用的控制结构&#xff0c;在 Go 语言中&#xff0c;除了 for 关键字以外&#xff0c;还有一个 range 关键字&#xff0c;可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。…...

小研究 - JVM 垃圾回收方式性能研究(三)

本文从几种JVM垃圾回收方式及原理出发&#xff0c;研究了在 SPEC jbb2015基准测试中不同垃圾回收方式对于JVM 性能的影响&#xff0c;并通过最终测试数据对比&#xff0c;给出了不同应用场景下如何选择垃圾回收策略的方法。 目录 4 垃圾回收器性能比较 4.1 测试结果 5 结语 …...

java根据poi解析excel内容

一.HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook Apache POI包中的HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook的区别如下: HSSFWorkbook&#xff1a;一般用于操作Excel2003以前&#xff08;包括2003&#xff09;的版本&#xff0c;扩展名是.xls。 XSSFWorkbook&#xff1a;一…...

实验报告-Sublime配置默认语法,以配置Verilog语法为例

实验报告-Sublime配置默认语法,以配置Verilog语法为例 1,下载Verilog语法环境2,Sublime配置语法工作环境,以Verilog语法环境为例。3,打开一个新的Sublime,验证编辑器配置Verilog为默认语法成功!4,Sublime汉化1,下载Verilog语法环境 参考文献: 1,Sublime Text 4加载…...

pve安装ikuai并设置,同时把pve的网络连接到ikuai虚拟机

目录 前因 前置条件 安装ikuai 进入ikuai的后台 配置lan口&#xff0c;以及wan口 配置lan口桥接 按实际情况来设置了 单拨&#xff08;PPOE拨号&#xff09; 多拨(内外网设置点击基于物理网卡的混合模式) 后续步骤 pve连接虚拟机ikuai的网络以及其他虚拟机连接ikuai的网…...

Android 面试题 ANR 五

&#x1f525; 什么是 ANR &#x1f525; ANR(Application Not Responding )应用无响应的简称&#xff0c;是为了在 APP卡死时&#xff0c;用户 可以强制退出APP的选择&#xff0c;从而避免卡机无响应问题&#xff0c;这是Android系统的一种自我保护机制。 在Android中&#xf…...

实训笔记7.28

实训笔记7.28 7.28笔记一、Hive的基本使用1.1 Hive的命令行客户端的使用1.2 Hive的JDBC客户端的使用1.2.1 使用前提1.2.2 启动hiveserver21.2.3 使用方式 1.3 Hive的客户端中也支持操作HDFS和Linux本地文件 二、Hive中DDL语法2.1 数据库的管理2.1.1 创建语法2.1.2 修改语法2.1.…...

C 游游的二进制树

题目描述 游游拿到了一棵树&#xff0c;共有nnn个节点&#xff0c;每个节点都有一个权值&#xff1a;0或者1。这样&#xff0c;每条路径就代表了一个二进制数。 游游想知道&#xff0c;有多少条路径代表的二进制数在[l,r][l,r][l,r]区间范围内&#xff1f; &#xff08;请注意…...

收发存和进销存有什么区别?

一、什么是收发存和进销存 1、收发存 收发存是供应链管理中的关键概念&#xff0c;用于描述企业在供应链中的物流和库存管理过程。 收发存代表了企业在采购、生产和销售过程中的物流活动和库存水平。 收&#xff08;Receiving&#xff09; 企业接收供应商送达的物料或产品…...

小程序 账号的体验版正式版的账号信息及相关配置

siteinfo.js // 正式环境 const releaseConfig {appID: "",apiUrl: "",imgUrl: "" }; // 测试环境&#xff08;包含开发环境和体验环境&#xff09; const developConfig {appID: "",apiUrl: "",imgUrl: "" }…...

AIGC(Artificial Intelligence Generated Content)和 Web3对比,未来发展

一、AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;行业 历史背景 AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;是指利用人工智能技术生成的内容。随着人工智能技术的不断发展&#xff0c;AIGC 行业逐渐兴起。早期的 AIG…...

机器学习之Boosting和AdaBoost

1 Boosting和AdaBoost介绍 1.1 集成学习 集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合&#xff0c;从而实现一个预测效果更好的集成分类器。 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型&#xff0c;各自独立地学…...

汇编语言预定义寄存器和协处理器

ARM汇编器对ARM的寄存器和协处理器进行了预定义&#xff08;包括APCS对r0&#xff5e;r15寄存器的定义&#xff09;&#xff0c;所有的寄存器和协处理器名都是大小写敏感的。 &#xff08;1&#xff09;预定义寄存器名 下面列出了被ARM汇编器预定义的寄存器名。 r0&#xff…...

【前缀和】974. 和可被 K 整除的子数组

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 974. 和可被 K 整除的子数组 题目:示例:题解: 题目: 示例: 题解: 本题与560.和为K的子数组高度相似 同样的,本题利用了前缀和的定理.当(pre[i]-…...

linux页框回收之shrink_node函数源码剖析

概述 《Linux内存回收入口_nginux的博客-CSDN博客》前文我们概略的描述了几种内存回收入口&#xff0c;我们知道几种回收入口最终都会调用进入shrink_node函数&#xff0c;本文将以Linux 5.9源码来描述shrink_node函数的源码实现。 函数调用流程图 scan_control数据结构 str…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...