每日总结(2021/12/15)
今天真的饱受折磨,不过最后感谢lzl学长和我的同学,我终于解决了那几道让我几度想拆电脑的题。
第一道:这道题的格式让我头疼,同时一点思路也没有,还好我同学点拨了一下。
现在有n个元素分别是1,2,3,...,n,我们想知道通过一个栈,在n次push/pop后,出栈序列可能是什么样的。例如n是5,那么入栈次序就是1,2,3,4,5,如果我们希望出栈次序同样是1,2,3,4,5,那只要每push一个数,就立即pop一个数。如果我们希望出栈次序是3,2,4,5,1,那么我们先让1,2,3入栈,然后pop出来3和2,接着4入栈后马上pop,再就是5入栈后马上pop,最后再把栈里的1pop出。再例如,如果我们希望出栈次序是5,4,1,2,3,这是办不到的,如果要让5最先出栈,那么出栈次序只可能是5,4,3,2,1
Input
输入由多块输入构成,每块的第一行是n,(1≤n≤1000),接着是多组测试数据,每组一行,每行由n个1到n的整数组成,直到某一行第一个数是0表示此输入块结束,然后是下一块数据。
当某一块的第一行的n是0的时候结束所有输入
Output
对每组数据,只要输出Yes或No,Yes表示能产生那样的出栈序列,No表示不能。 输入块与输入块之间要多输出一个空行分隔。注意对于最后一个n为0的输入块不要多输出空行。
Sample Input
5 1 2 3 4 5 5 4 1 2 3 0 6 6 5 4 3 2 1 0 0
Sample Output
Yes NoYes
#include<stdio.h>void push(int n,int a[])
{int j=1,top=0,w[2000]= {0};for(int i=0; i<n; i++){if(w[top]!=a[i])//如果栈顶不是a[i]{for(; j<=a[i]; j++)//直接把top加到a[i]{top++;w[top]=j;}}if(w[top]==a[i])//如果栈顶是a[i]top--;//就让栈顶下滑一个}if(top==0)printf("Yes\n");//到最后看栈顶是否为0elseprintf("No\n");
}
int main()
{int n;//输入格式(让人无语)while(scanf("%d",&n)!=EOF){if(n==0)return 0;else{for(int o=0;; o++){int a[2000];for(int i=0; i<n; i++){scanf("%d",&a[i]);if(a[i]==0)break;}if(a[0]==0){printf("\n");break;}push(n,a);//调用函数判断是否能输出该数列}}}return 0;
}
关于判断一个数列是否能合法按栈的方式输出,我这还有一个简单方法,是关于出栈的数学规律;XDOJ_305 判断堆栈出栈序列是否有效 C语言描述_m0_46951573的博客-CSDN博客详情可以看这里,我先把代码码出来,是真的巧妙,省了挺多麻烦的。
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20
int main(){int i,j,n;int a[MAXSIZE];int key;scanf("%d", &n);for(i=0; i<n; i++){scanf("%d", &a[i]);}//利用出栈顺序的规律 for(i=0; i<n; i++){key = a[i];for(j=i+1; j<n; j++){ //判断该下标之后比它小的数是不是按递减顺序排列 if( a[i]>a[j] ){if(key < a[j]){printf("no");return 0;}else{key = a[j];}}}}printf("yes");return 0;
}
再来一道很简单的题目,反正我是一遍过
宇神完成了栈的实验要求后,他又很是开心,刚要出去五排, 菌菌子突然问道老师让做的队列的那个实验你写完了么,宇神顿时大呼悲哉。。。。他给忘记了,怎么办。。明天就要上交实验报告了,你能帮他搞定么???
你需要完成三种操作1.enqueue x,将元素x插入队尾。2.dequeue,若队列非空,则删去队头元素,并输出该元素。3.query,从队头开始删除所有元素,并输出。
Input
本题有多组测试数据,每组数据首先输入一个T,接下来T行是T种对队列的操作。 (0< T < 100,0< x <= 500)
Output
每次执行dequeue操作时删除队头元素输出并换行,如果队列为空输出“this is empty!”并换行。
每次执行query操作时删除所有元素队列内所有元素并输出,每个元素占一行,如果栈为空输出“this is empty!”并换行。
每组数据后有一个空行。
Sample Input
10 enqueue 1 enqueue 2 enqueue 3 enqueue 4 query dequeue enqueue 1 dequeue query dequeue
#include<stdio.h>
#include<string.h>
int Q[200];
int back,front,num;
char a[10];
int main()
{int n;while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++){scanf("%s",a);if(a[0]=='e') {scanf("%d",&num);Q[back++]=num;}else if(a[0]=='q'){if(back==front)printf("this is empty!\n");else{for(int j=front;j<back;j++){printf("%d\n",Q[j]);Q[j]=0;}back=0;front=0;}}else {if(back==front)printf("this is empty!\n");elseprintf("%d\n",Q[front++]);}}for(int i=0;i<back;i++)Q[i]=0;back=0;front=0;printf("\n");}
}
每日总结(2021/12/15)相关推荐
- 每日启程——2019.12.15(纸上谈来终觉浅,绝知此事要躬行。)
每日启程--2019.12.15(纸上谈来终觉浅,绝知此事要躬行.) 早上本来想多睡一会.没想到对面的工地可不答应.硬是一锤一锤的把我叫醒.好吧,谁叫我昨天晚上睡得太晚了呢.不过呢.昨天没有做启程和总 ...
- 假设检验_ t 检验的例子 2021/12/15
参考文档:百度文库里面一些医学实验例子,以及最近外场测试脱网例子 一 单个正态总体 均值u的 t 检验 1.1 单边 解: # -*- coding: utf-8 -*- ""&q ...
- 2021.12.15
开普勒望远镜制作镜筒长度等于物镜焦距与目镜焦距之和.为便于调焦,可以把镜筒分成两节,即物镜镜筒.目镜镜筒.物镜镜筒长度等于物镜焦距,目镜镜筒的长度等于目镜焦距加50-80mm.
- 2021.12.15.梦开始的地方.
21岁.重庆 高考581分,现在大四,非985,非211. 数学与应用数学专业,大学就学过c语言. 我的目标是outstanding 程序员.高薪offer.迎娶白富美. 如何学习编程? 学好c语言. ...
- 2021/12/15
认证模块 首先要知道一些基础的知识,写一个空组件要做到以下两步. 第一步, 如果需要页面显示,在router.js对组件进行配置路由. 关于js的知识: import { defineComponen ...
- 2021/12/15 RCE代码和命令执行
小迪 https://www.bilibili.com/video/BV1JZ4y1c7ro?p=29 https://www.cnblogs.com/ermei/p/6689005.html htt ...
- 『金融帝国实验室』(CapLab)官方正版销售指引(2021.12.15)
- 每日阅读2021.12.10
There was a time not long ago when new science Ph.D.s in the United Stated were expected to pursue a ...
- 数据挖掘复习资料2021.12.15
数据挖掘 绪论 四种主要技术激发了人们对数据挖掘研究的兴趣: 超大规模数据库的出现,先进的计算机技术.对海量数据的快速访问.统计方法在数据处理领域应用的不断深入 数据挖掘定义: 技术层面:数据挖掘就是 ...
最新文章
- 删除Kali Linux多余的系统架构
- 搞定Linux只要半年
- 【OpenCV3】图像旋转与平移——cv::warpAffine()详解
- 中国移动短信网关CMPP3.0 C#源代码:CMPP30类(1)(转)
- vim插件推荐之indentLine
- throws Exception的意思
- linux运维适合女生么,女生真的不适合做IT行业吗?Linux运维适合女生学习吗?
- [转载] JAVA泛型杂谈--擦除,协变,逆变,通配符等
- CDH6 kafka如何彻底删除topic及数据
- Delphi 的绘图功能[2] - 入门
- javaWeb毕业设计项目完整源码附带论文合集免费下载
- 分享 5 个实用的 Java 开源论坛系统!
- 大数据解决方案:Hadoop监控
- 考研政治——马克思三大定律之否定之否定
- 264.高德地图的使用---驾车出行路线规划(4)
- 目前计算机主流配置及选购,计算机主流配置及选购.doc
- 线程的启动暂停和终止
- git commit规范 、CHANGELOG生成 和版本发布的标准自动化
- vue.js 回显textarea入的空格和换行
- 半监督学习:MixMatch
热门文章
- 为什么你还没有买新能源汽车?
- 你不是真正的快乐---纪念即将完结的青春和陪伴我的阿星和星仔和星爷
- MAC去掉更新小红点
- 【leetcode刷题班】贪心题目求解
- 事件日志中出现TKK: 更新 TKK 失败,请检查网络连接,翻译插件用不了
- oracle parallel_max_servers,PARALLEL_MAX_SERVERS参数
- AtCoder Beginner Contest 161 C Replacing Integer 公式推导
- 抑郁症可以学计算机吗,AI能从人的话语中察觉到抑郁症吗?目前还为时过早
- 用Java编写程序实现从键盘读入学生成绩,找出最高分,并输出学生成绩和学生的等级。
- 解压软件Bandizip