[刷题] PTA 02-线性结构4 Pop Sequence
模拟栈进出
方法一:
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的更多相关文章
- 线性结构4 Pop Sequence
02-线性结构4 Pop Sequence(25 分) Given a stack which can keep M numbers at most. Push N numbers in the or ...
- 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 ...
- [刷题] PTA 02-线性结构3 Reversing Linked List
链表逆序 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 using namesp ...
- [刷题] PTA 02-线性结构1 两个有序链表序列的合并
程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef int ElementType; 5 typedef st ...
- 02-线性结构4 Pop Sequence
02-线性结构4 Pop Sequence (25分) 时间限制:400ms 内存限制:64MB 代码长度限制:16kB 判题程序:系统默认 作者:陈越 单位:浙江大学 https://pta.p ...
- pat02-线性结构4. Pop Sequence (25)
02-线性结构4. Pop Sequence (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue Given ...
- 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 ...
- 数据结构练习 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 ...
- 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 ...
随机推荐
- 【linux】驱动-7-平台设备驱动
目录 前言 7. 平台设备驱动 7.1 平台总线 7.1.1 平台总线注册和匹配方式 7.1.2 源码分析 7.2 平台设备 7.2.1 platform_device 7.2.2 设备信息 7.2. ...
- Python 网络编程 C/S建立Socket连接
分为客户端和服务端 服务端 server.py 客户端 1 #coding=utf-8 2 import socket 3 4 client = socket.socket() #生成socket连接 ...
- 2,turicreate入门 - 一个简单的回归模型
turicreate入门系列文章目录 1,turicreate入门 - jupyter & turicreate安装 2,turicreate入门 - 一个简单的回归模型 3,turicrea ...
- Kafka分片存储、消息分发和持久化机制
Kafka 分片存储机制 Broker:消息中间件处理结点,一个 Kafka 节点就是一个 broker,多个 broker 可以组成一个 Kafka集群. Topic:一类消息,例如 page vi ...
- 「Spring Boot 2.4 新特性」启动耗时详细监控
背景 Spring Boot 项目随着项目开发过程中引入中间件数量的增加,启动耗时 逐渐增加. 笔者在 <Spring Boot 2.4.0 正式 GA,全面拥抱云原生>文章评论下发现了 ...
- 解决CentOS虚拟机无法显示本地IP问题
1 问题描述 CentOS虚拟机无法显示本地ip,如图: 2 尝试过的方法 参考过此处的解决方法,把网卡配置中的ONBOOT修改为YES: 但是原来的网卡配置也是YES,所以修改的方法没有用,尝试了一 ...
- Cobalt-Strike Office宏利用与免杀
1.打开Cobalt-Strike生产Office宏病毒. 首先需要设置监听器.因为钓鱼的目标比较单纯,在这里就不采用域前置技术. 然后使用攻击模块,生产Office宏病毒. 设置好监听器. 生成宏病 ...
- 基于DRV8701的电机驱动设计
栅极驱动芯片DRV8701使用的一些注意事项
- Java IO流知识总结
Java IO的原理 I/O是Input和Output的缩写,用来处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(stream)" ...
- 06- web兼容性测试与web兼容性测试工具
web兼容性概述 定义:软件兼容性测试是指检查软件之间能否正确地进行交互和共享信息.随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重 ...