码迷,mamicode.com
首页 > 编程语言 > 详细

栈-铁轨-Java

时间:2017-09-13 21:13:47      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:测试数据   http   public   如图所示   ==   div   火车站   nbsp   author   

问题描述:某城市有一个火车站。铁轨铺设如图所示。有N节车厢从A方向驶入车站,按进站顺序编号为1~n。你的任务是让他们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,可以借助中转站C,对于每个车,一旦进入c就不能再进入A,一旦c进入B就不能回到c。

技术分享

测试数据

   输入样例:

    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");
            }
        }
    }
}

 

栈-铁轨-Java

标签:测试数据   http   public   如图所示   ==   div   火车站   nbsp   author   

原文地址:http://www.cnblogs.com/NEU-2015/p/7517573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!