PAT-Pop Sequence (25)
来源:互联网 发布:百会软件 编辑:程序博客网 时间:2024/05/01 01:10
题意:
模拟出栈顺序
解答:
对于每行要测试的数据,单独进行模拟验证,符合要求输出YES,否则输出NO。
再验证流程:
1. 设置一个索引 index = 0,如果第一个待检测数值为X,则把 index+1 ~ X的数据全部入栈,并把 index 设置为 X,同事还要保证栈的容量不能超标。之后再弹出栈顶原素,和第一个待检测数值比较。
2. 接着判断第二待检测原素Y,如果 index > Y,则直接从栈顶弹出原素和Y比较。如果 index < Y,把 index+1 ~ Y的数据全部入栈,并把 index 设置为 Y,同时还要保证栈的容量不能超标。之后再弹出栈顶原素,和待检测数值 Y 比较。
再弹出栈顶原素和待检测数值比较时,需要判断栈顶是否为空。
3. 重复操作 2 即可
在比较过程中,发现不符号要求即可终止判断。
再弹出栈顶原素和待检测数值比较时,需要判断栈顶是否为空。
3. 重复操作 2 即可
在比较过程中,发现不符号要求即可终止判断。
具体java代码如下:
import java.util.*;public class Main{ static int M; static int N; static int K; static int[] a; public static void main(String[] args){ Scanner in=new Scanner(System.in); M=in.nextInt(); N=in.nextInt(); K=in.nextInt(); a=new int[N]; for(int i=0;i<K;i++){ for(int j=0;j<N;j++){ a[j]=in.nextInt(); } seq(a); } } public static void seq(int[] a){ int index=0; Stack<Integer> stack=new Stack(); for(int j=0;j<N;j++){ if(a[j]>index){ for(int k=index+1;k<=a[j];k++){ stack.push(k); if(stack.size()>M){ System.out.println("NO"); return; } } index=a[j]; } if(stack.isEmpty()){ System.out.println("NO"); return; } int val=stack.pop(); if(val!=a[j]){ System.out.println("NO"); return; } } System.out.println("YES"); } }
0 0
- PAT-Pop Sequence (25)
- 1051. Pop Sequence (25)-PAT
- 【PAT】1051. Pop Sequence (25)
- PAT 1051. Pop Sequence (25)
- PAT 1051. Pop Sequence (25)
- PAT 1051. Pop Sequence (25)
- PAT 1051. Pop Sequence (25)
- PAT 1051. Pop Sequence (25)
- PAT 1051. Pop Sequence (25)
- pat-a1051. Pop Sequence (25)
- PAT A1051. Pop Sequence (25)
- PAT A 1051. Pop Sequence (25)
- 【PAT甲级】1051. Pop Sequence (25)
- 1051. Pop Sequence (25)PAT甲级
- PAT甲级练习1051. Pop Sequence (25)
- PAT甲级1051. Pop Sequence (25)
- PAT-A-1051. Pop Sequence (25)
- 【PAT】【Advanced Level】1051. Pop Sequence (25)
- 计划
- 《Linux内核Makefile分析》之 auto.conf, auto.conf.cmd, autoconf.h(转载)
- SharePoint 2013 Open File Explorer Error
- 第1次上机实验-2
- 《明朝那些事儿》心得体会
- PAT-Pop Sequence (25)
- C++函数指针用法
- Redis 实践
- 打印中,设备坐标与逻辑坐标转换
- http 请求 详解 1
- PCA (主成分分析)详解 (写给初学者) 结合matlab
- C++第二次实验
- PHP-Zend引擎剖析之CV变量
- ES6中Set和WeakSet的使用