标签:测试数据 http public 如图所示 == div 火车站 nbsp author
测试数据
输入样例:
5
5 4 3 2 1
6
6 5 4 3 2 1
5
5 4 1 2 3
输出样例:
Yes
Yes
No
import java.util.Scanner; import java.util.Stack; /** * 铁轨 * @author NEU-2015 * */ public class Demo { public static void main(String[] args) { Scanner input = new Scanner(System.in); int x; int[] array; Stack<Integer> stack = new Stack<Integer>(); boolean flag; int a; int b; while(input.hasNext()) { flag = true; b = 1; a = 1; x = input.nextInt(); array = new int[x]; for(int i = 0; i < x; i++) { array[i] = input.nextInt(); } //关键部分 while(a <= x) { if(array[a-1] == b) { //1.进队 与 出队 相等 a++; b++; } else if(!stack.empty() && stack.peek() == array[a-1]) { //2.进队 与 出队 不相等 但是 中间栈顶元素 与 出队 元素相等 stack.pop(); a++; } else if(b <= x) { //3.进队 与 出队不相等 栈顶 与 出队 不相等 将进队元素压栈 stack.push(b++); } else { //4.不可能出现输入中 的结果 结束循环 flag = false; break; } } if(!flag) { System.out.println("No"); } else { System.out.println("Yes"); } } } }
标签:测试数据 http public 如图所示 == div 火车站 nbsp author
原文地址:http://www.cnblogs.com/NEU-2015/p/7517573.html