今天真的饱受折磨,不过最后感谢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)相关推荐

  1. 每日启程——2019.12.15(纸上谈来终觉浅,绝知此事要躬行。)

    每日启程--2019.12.15(纸上谈来终觉浅,绝知此事要躬行.) 早上本来想多睡一会.没想到对面的工地可不答应.硬是一锤一锤的把我叫醒.好吧,谁叫我昨天晚上睡得太晚了呢.不过呢.昨天没有做启程和总 ...

  2. 假设检验_ t 检验的例子 2021/12/15

    参考文档:百度文库里面一些医学实验例子,以及最近外场测试脱网例子 一 单个正态总体 均值u的 t 检验 1.1 单边 解: # -*- coding: utf-8 -*- ""&q ...

  3. 2021.12.15

    开普勒望远镜制作镜筒长度等于物镜焦距与目镜焦距之和.为便于调焦,可以把镜筒分成两节,即物镜镜筒.目镜镜筒.物镜镜筒长度等于物镜焦距,目镜镜筒的长度等于目镜焦距加50-80mm.

  4. 2021.12.15.梦开始的地方.

    21岁.重庆 高考581分,现在大四,非985,非211. 数学与应用数学专业,大学就学过c语言. 我的目标是outstanding 程序员.高薪offer.迎娶白富美. 如何学习编程? 学好c语言. ...

  5. 2021/12/15

    认证模块 首先要知道一些基础的知识,写一个空组件要做到以下两步. 第一步, 如果需要页面显示,在router.js对组件进行配置路由. 关于js的知识: import { defineComponen ...

  6. 2021/12/15 RCE代码和命令执行

    小迪 https://www.bilibili.com/video/BV1JZ4y1c7ro?p=29 https://www.cnblogs.com/ermei/p/6689005.html htt ...

  7. 『金融帝国实验室』(CapLab)官方正版销售指引(2021.12.15)

  8. 每日阅读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 ...

  9. 数据挖掘复习资料2021.12.15

    数据挖掘 绪论 四种主要技术激发了人们对数据挖掘研究的兴趣: 超大规模数据库的出现,先进的计算机技术.对海量数据的快速访问.统计方法在数据处理领域应用的不断深入 数据挖掘定义: 技术层面:数据挖掘就是 ...

最新文章

  1. 删除Kali Linux多余的系统架构
  2. 搞定Linux只要半年
  3. 【OpenCV3】图像旋转与平移——cv::warpAffine()详解
  4. 中国移动短信网关CMPP3.0 C#源代码:CMPP30类(1)(转)
  5. vim插件推荐之indentLine
  6. throws Exception的意思
  7. linux运维适合女生么,女生真的不适合做IT行业吗?Linux运维适合女生学习吗?
  8. [转载] JAVA泛型杂谈--擦除,协变,逆变,通配符等
  9. CDH6 kafka如何彻底删除topic及数据
  10. Delphi 的绘图功能[2] - 入门
  11. javaWeb毕业设计项目完整源码附带论文合集免费下载
  12. 分享 5 个实用的 Java 开源论坛系统!
  13. 大数据解决方案:Hadoop监控
  14. 考研政治——马克思三大定律之否定之否定
  15. 264.高德地图的使用---驾车出行路线规划(4)
  16. 目前计算机主流配置及选购,计算机主流配置及选购.doc
  17. 线程的启动暂停和终止
  18. git commit规范 、CHANGELOG生成 和版本发布的标准自动化
  19. vue.js 回显textarea入的空格和换行
  20. 半监督学习:MixMatch

热门文章

  1. 为什么你还没有买新能源汽车?
  2. 你不是真正的快乐---纪念即将完结的青春和陪伴我的阿星和星仔和星爷
  3. MAC去掉更新小红点
  4. 【leetcode刷题班】贪心题目求解
  5. 事件日志中出现TKK: 更新 TKK 失败,请检查网络连接,翻译插件用不了
  6. oracle parallel_max_servers,PARALLEL_MAX_SERVERS参数
  7. AtCoder Beginner Contest 161 C Replacing Integer 公式推导
  8. 抑郁症可以学计算机吗,AI能从人的话语中察觉到抑郁症吗?目前还为时过早
  9. 用Java编写程序实现从键盘读入学生成绩,找出最高分,并输出学生成绩和学生的等级。
  10. 解压软件Bandizip