首页 > 其他分享 >A -栈(用数组简单编写部分操作)

A -栈(用数组简单编写部分操作)

时间:2024-07-22 11:55:12浏览次数:11  
标签:输出 tt long query pop 数组 简单 编写 op

Description

请你实现一个栈(stack),支持如下操作:

  • push(x):向栈中加入一个数 x。
  • pop():将栈顶弹出。如果此时栈为空则不进行弹出操作,输出 Empty
  • query():输出栈顶元素,如果此时栈为空则输出 Anguei!
  • size():输出此时栈内元素个数。

Input

本题单测试点内有多组数据
输入第一行是一个整数 T,表示数据组数。对于每组数据,格式如下:
每组数据第一行是一个整数,表示操作的次数 n。
接下来 n 行,每行首先由一个字符串,为 pushpopquery 和 size 之一。若为 push,则其后有一个整数 x,表示要被加入的数,x 和字符串之间用空格隔开;若不是 push,则本行没有其它内容。

Output

对于每组数据,按照「题目描述」中的要求依次输出。每次输出占一行。

Sample 1

InputcopyOutputcopy
2
5
push 2
query
size
pop
query
3
pop
query
size
2
1
Anguei!
Empty
Anguei!
0

Hint

样例 1 解释

对于第二组数据,始终为空,所以 pop 和 query 均需要输出对应字符串。栈的 size 为 0。

数据规模与约定

对于全部的测试点,保证 1≤T,n≤10^6,且单个测试点内的 n 之和不超过 10^6,

提示

  • 请注意大量数据读入对程序效率造成的影响。
  • 因为一开始数据造错了,请注意输出的 Empty 不含叹号,Anguei! 含有叹号。
  1. 首先,定义了一个常量N,表示栈的最大容量为1000010。同时,定义了一个unsigned long long类型的数组stk,用于存储栈中的元素。还定义了一个整型变量tt,用于指示栈顶的位置。

  2. 主函数开始,先读取一个整数T,表示有T组测试数据。

  3. 进入第一个while循环,循环T次,即处理每一组测试数据。

  4. 在每一组测试数据中,首先读取一个整数n,表示该组测试数据中操作的个数。

  5. 然后,进入第二个while循环,循环n次,即处理每一个操作。

  6. 在每一个操作中,首先读取一个字符串op,表示操作的类型。根据op的不同,执行不同的操作。

  7. 如果op是"push",则读取一个unsigned long long类型的数x,并将x压入栈中。

  8. 如果op是"pop",则判断栈是否为空。如果栈不为空,则将栈顶元素弹出,并将tt减1;否则输出"Empty"。

  9. 如果op是"query",则判断栈是否为空。如果栈不为空,则输出栈顶元素;否则输出"Anguei!"。

  10. 如果op是"size",则输出当前栈中元素的个数tt。

  11. 内层循环结束后,处理完了该组测试数据。

  12. 外层循环结束后,所有的测试数据都处理完了。

  13. 最后,主函数返回0,表示程序正常运行结束。

 

源码如下: 

#include<iostream>
using namespace std;
const int N=1000010;
unsigned long long stk[N];
int tt;
int main(){
	int T;
	scanf("%d",&T);
	tt=0;
	while(T--){
		int n;
		scanf("%d",&n);
		tt=0;
		while(n--){
			char op[10];
			unsigned long long x;
			scanf("%s",op);
			if(op[0]=='p' && op[1]=='u'){
				scanf("%llu",&x);
				stk[++tt]=x;			
			}
			else if(op[0]=='p'&&op[1]=='o'){
				if(tt>0){
					tt--;
				}
				else{
					puts("Empty");
				}
			}
			else if(op[0]=='q'){
				if(tt>0){
					printf("%llu\n",stk[tt]);
				}
				else
				puts("Anguei!");
			}
			else{
				printf("%d\n",tt);
			}
		}
	}
	return 0;
} 

 

标签:输出,tt,long,query,pop,数组,简单,编写,op
From: https://blog.csdn.net/2301_80345285/article/details/140544793

相关文章

  • Redis底层数据结构-简单动态字符串SDS
    简单动态字符串(simpledynamicstring,SDS)。Redis没有直接使用C语言传统的字符串,而是自己构建了一种简单动态字符串(SDS)的抽象类型。C字符串只会作为字符串字面量(stringliteral)用在一些无须对字符串值进行修改的地方。实现sds.h/sdshdrstruct__attribute__((__packed__)......
  • C语言数组的相关案例
    引导案例:数组的遍历:这里需要注意的是我们在遍历数组时是使用for循环,这里则需要计算数组的长度计算公式:sizeof(数组名)/sizeof(数组的数据类型)#include<stdio.h>intmain(){ intarr[]={1,2,3,4,5,6,7,8,9,10}; intlength=sizeof(arr)/sizeof(int); for(i......
  • 记录一次简单的模型训练分析过程
    本篇是自己学习过程中的记录,使用的数据集比较小,主要是为了代码分析和简单的提点。代码分析的部分在之前的文章中已经总结了,本篇主要是结果分析和提升map的一些尝试,入门阶段,高手请绕行。数据集目标:口罩标签:mask,no-mask图片数量:149训练集:123个验证集:46个来源:https://app.r......
  • Python - for循环不使用正则表达式附加数组
    以下代码从URL获取版本号,然后对于每个版本号,转到该版本号的页面并使用文件名的特定模式填充数组。生成的数组应包含每个版本号的文件名列表,但它似乎只包含早期版本(2.6)。使用print语句,我可以看到代码的工作原理是它获取sha256sums.asc文件-所有这些文件,所有版本。我猜......
  • 一个简单的问题(python、串行通信和arduinos)
    只是一个关于小脚本的快速问题,由于某种原因无法工作我运行了这个脚本:importserialimporttimeimportturtledefserialreading():serialPort=serial.Serial(port="COM5",baudrate=9600,bytesize=8,timeout=2,stopbits=serial.STOPBITS_ONE......
  • 简单的球场管理系统(仅仅是连接IDEA与数据库不涉及前端,展示主要是在控制台输入输出)
    项目内层分为七层我这里分为(beans,controller,dao,lib,service,test,util)这七层仅展示(controller层)(1)QiuChangControllerimportcom.xszx.beans.Balance;importcom.xszx.beans.Ball;importcom.xszx.beans.JBall;importcom.xszx.beans.User;importcom.xszx.dao......
  • 使用vue-router创建一个简单示例
    以下是一个完整的Vue.js应用示例,展示了如何创建一个简单的Vue.js应用,并使用VueRouter实现不同组件页面之间的导航。这个示例包括组件页面、路由配置以及如何构建和搭建这些页面。1.创建项目首先,创建一个新的Vue3项目:npminitvue@latest按照提示完成项目初始化......
  • 最简单的打包发布
    1、打开Edge浏览器,使用163邮箱或者qq邮箱注册微软账号并登录2、打开网站,使用刚才的账号继续注册nuget,并登录https://www.nuget.org/3、新建standard类库4、修改csproj文件将<TargetFramework>standard2.1<TargetFramework>改为<TargetFrameworks>net461;net471;net48</Ta......
  • 【简单讲解TalkingData的数据统计】
    ......
  • day1-数组和链表
    力扣704.二分查找给定一个n个元素的有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回小标,否则返回-1。思路:二分查找法,定义左右边界[left,right);不断取中值缩小查找范围。classSolution{publicintsearch(int[]nums,int......