模拟栈进出

方法一:

 1 #include<stdio.h>
2 #define MAXSIZE 1000
3
4 typedef struct{
5 int data[MAXSIZE];
6 int top;
7 }SqStack;
8
9 int InitStack(SqStack *s){
10 s->top=-1;
11 return 0;
12 }
13
14 int Push(SqStack *s,int e){
15 if(s->top==MAXSIZE) return 1;
16 s->top++;
17 s->data[s->top]=e;
18 return 0;
19 }
20
21 int Pop(SqStack *s){
22 int e;
23 if(s->top==-1) return 1;
24 e = s->data[s->top];
25 s->top--;
26 return e;
27 }
28
29 int main(){
30 int m,n,k,i,h;
31 SqStack s,t;
32 scanf("%d%d%d",&m,&n,&k);
33 while(k--){
34 InitStack(&s);
35 InitStack(&t);
36 for(i=n-1;i>=0;i--){
37 scanf("%d",&(t.data[i]));
38 }
39 t.top=n-1;
40 i=0;
41 while(i<=n){
42 if(s.data[s.top]==t.data[t.top]&&s.top!=-1){
43 Pop(&s);
44 Pop(&t);
45 }else if(s.top<m-1 && i<n){
46 i++;
47 Push(&s,i);
48 }else{
49 break;
50 }
51 }
52 if(s.top==-1 && t.top==-1){
53 printf("YES\n");
54 }else{
55 printf("NO\n");
56 }
57 }
58 return 0;
59 }

分析:

1、自定义栈

2、通过两个栈模拟进出

方法二:

 1 #include<stdio.h>
2 #include<iostream>
3 #include<vector>
4 #include<stack>
5 using namespace std;
6
7 int M,N,K;
8
9 int Check(vector<int> &v) {
10 int i=0;
11 int num=1;
12 int cap=M+1;
13 stack<int> sta;
14 sta.push(0);
15 while(i<N) {
16 while(v[i]>sta.top()&&sta.size()<cap)
17 sta.push(num++);
18 if(v[i++]==sta.top())
19 sta.pop();
20 else
21 return 0;
22 }
23 return 1;
24 }
25
26 int main() {
27 vector<int> vec(N,0);
28 scanf("%d%d%d",&M,&N,&K);
29 for(int i=0; i<K; i++) {
30 for(int j=0; j<N; j++) {
31 int number;
32 scanf("%d",&number);
33 vec.push_back(number);
34 }
35 if(Check(vec)) printf("YES\n");
36 else printf("NO\n");
37 vec.clear();
38 }
39 return 0;
40 }

分析:

1、利用c++容器vector和stack模拟

[刷题] PTA 02-线性结构4 Pop Sequence的更多相关文章

  1. 线性结构4 Pop Sequence

    02-线性结构4 Pop Sequence(25 分) Given a stack which can keep M numbers at most. Push N numbers in the or ...

  2. PTA 02-线性结构4 Pop Sequence (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/665 5-3 Pop Sequence   (25分) Given a stack wh ...

  3. [刷题] PTA 02-线性结构3 Reversing Linked List

    链表逆序 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 using namesp ...

  4. [刷题] PTA 02-线性结构1 两个有序链表序列的合并

    程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef int ElementType; 5 typedef st ...

  5. 02-线性结构4 Pop Sequence

    02-线性结构4 Pop Sequence   (25分) 时间限制:400ms 内存限制:64MB 代码长度限制:16kB 判题程序:系统默认 作者:陈越 单位:浙江大学 https://pta.p ...

  6. pat02-线性结构4. Pop Sequence (25)

    02-线性结构4. Pop Sequence (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue Given ...

  7. 02-线性结构3 Pop Sequence

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

  8. 数据结构练习 02-线性结构3. Pop Sequence (25)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

  9. 02-线性结构4 Pop Sequence (25 分)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

随机推荐

  1. docker部署nodejs项目应用

    之前笔者弄了一套nestjs项目放在自己服务器上,并用pm2管理进程. 现在要把pm2停止,尝试一下用docker容器,那么首先要安装docker 一.安装docker 由于笔者服务器的系统是cent ...

  2. [源码解析] 并行分布式框架 Celery 之 worker 启动 (2)

    [源码解析] 并行分布式框架 Celery 之 worker 启动 (2) 目录 [源码解析] 并行分布式框架 Celery 之 worker 启动 (2) 0x00 摘要 0x01 前文回顾 0x2 ...

  3. Dynamics CRM安装教程四:DNS配置

    在为MS CRM 配置Claims-based认证之前,你需要在域控服务器的DNS中添加一些记录,来解析CRM的各个断点,添加內容如下(本次环境全部安装在一台机子中): AD FS 服务器(例: ad ...

  4. Spring Boot demo系列(四):Spring Web+Validation

    2021.2.24 更新 1 概述 本文主要讲述了如何使用Hibernate Validator以及@Valid/@Validate注解. 2 校验 对于一个普通的Spring Boot应用,经常可以 ...

  5. Oracle-DG最大保护模式下,dg备库出现问题对主库有什么影响?

    一.需求 疑问?Oracle最大保护模式下,dg备库出现问题,影响主库吗? 我们都知道Oracle最大保护模式的意思是oracle不允许数据丢失,1条记录都不行! 那么备库有问题? oracle主库还 ...

  6. matlab文件管理

    当前文价夹浏览器以及路径管理器   在主页面左侧有单独的窗口进行显示,可以显示当前目录下的文件并提供文件搜索功能. 搜索路径 搜索先后步骤 输入字符串"polyfit" (1)检查 ...

  7. hdu4848 DFS 暴搜+ 强剪枝

    题意:       给你一个图,然后问你从1出发遍历所有的点的距离和是多少,这里的距离和是每一个点到1的距离的总和,不是选择一条遍历所有点的路径的总长度,时间限制是 8000ms. 思路:       ...

  8. LA3177长城守卫

    题意:      有n个人围成一个圈,每个人都有r[i]个礼物,任意两个相邻的人的礼物不能有重复的,问满足所有相邻不重复的最少礼物种数是多少?就是问最少多少种礼物能让任意相邻的两个人的礼物不重复. 思 ...

  9. Sqlmap的使用详解

    目录 Sqlmap Sqlmap的简单用法 探测指定URL是否存在SQL注入漏洞 查看数据库的所有用户 查看数据库所有用户名的密码 查看数据库当前用户 判断当前用户是否有管理权限 列出数据库管理员角色 ...

  10. (邹博ML)矩阵和线性代数

    主要内容 矩阵 特征值和特征向量 矩阵求导 矩阵 SVD的提法 奇异值分解(Singular Value Decomposition)是一种重要的矩阵分解方法,可以看做对称方阵在任意矩阵上的推广. 假 ...