美文网首页
车厢排序

车厢排序

作者: aladdinwang | 来源:发表于2018-06-12 00:39 被阅读0次

一列火车有n个车厢标记为1,2,3,4,5,6…n
现在因为某些原因,需要调整车厢的相对顺序
例如需要将车厢顺序调整为2,3,1,4,5,6…n
由于车厢庞大,且车厢只能停留在铁轨上,所以不能随心所欲的调整相对顺序

现在只能利用两条并行的铁轨对车厢的顺序进行调整
例如
原序列为1,2的车厢
车厢1进入铁轨1停止
车厢2进入铁轨2,然后再开出
然后铁轨1上的车厢1再开出
这样可以使得车厢2调整到车厢1得前面

现在给你一个期望得到的车厢顺序,请你判断该顺序能否通过以上方法调整车厢顺序而得到
(车厢只能前进无法后退)
输入格式
第一行n表示有n个车厢
第二行有n个数为1~n的排列用空格隔开,表示期望得到的车厢顺序

输出:若可以得到则输出Yes 否则输出No

样例输入1:
2
2 1
样例输出1:
Yes

样例输入2:
5
3 4 1 5 2
样例输出2:
Yes

样例输入3:
5
3 4 2 1 5
样例输出3:
No


个人分析:

比如样例输入2:
5
3 4 1 5 2
样例输出2:
Yes

图解题意:


这里写图片描述

车厢1、2进入铁轨2,车厢3、4、5进入铁轨1,铁轨就像队列一样,先进先出


这里写图片描述

车厢5先停留下来,铁轨2的车厢1先行开出:


这里写图片描述

然后车厢5先出,车厢2最后开出即可。

而样例输入3:
5
3 4 2 1 5
样例输出3:
No

开始


这里写图片描述

车厢1、2进入铁轨2,车厢3、4、5进入铁轨1,铁轨就像队列一样,先进先出


这里写图片描述

然而车厢3、4车厢出来之后,车厢2无法开出,所以这个顺寻不可行:


这里写图片描述

故不可以做到,输出No。

# coding: utf-8

from collections import deque
def feasible(a, b):
    q1 = deque()
    q2 = deque()

    def find(x):
        for q in [q1, q2]:
            if q and q[0] == x:
                q.popleft()
                return True
        if not a or x < a[0]:
            return False
        if all((q1, q2)):
            return False

        q = filter(None, [q1, q2])
        if not q:
            q = q1

        i = x - a[0]            
        q.extend(a[:i])
        del a[:i+1]
        return True
    for x in b:
        if not find(x):
            return False
        
    return True


print feasible(range(1, 6), [3, 4, 2, 1, 5])
print feasible(range(1, 6), [3, 4, 1, 5, 2])

相关文章

  • 车厢排序

    一列火车有n个车厢标记为1,2,3,4,5,6…n现在因为某些原因,需要调整车厢的相对顺序例如需要将车厢顺序调整为...

  • 车厢

    “笛…” 列车的长鸣在寂静的夜空中划出一道弧线,伴着“哐当、哐当”的响声,它正驶向一片看不到尽头的黑暗。 这是一辆...

  • 车厢

    有一个小橘子从车厢一头滚到另一头 车厢顶上吊着十三张嘴 绿色的座位上长着各色的植物 垂着的枝条穿着丝袜 丝袜压肉 ...

  • 车厢

    我是觅小金桔 希望你喜欢

  • 车厢

    一节不大不小的车厢, 装着形形色色的人。 他们应该, 是为了一个大致共同的方向, 便钻进这节拥挤不堪的车厢。 他们...

  • 车厢

    “喀嚓喀嚓……”列车缓缓开动了。 这是一节由南向北的传统绿皮车硬座车厢,两边均匀的分布着面对面式的座椅,两个或三个...

  • 车厢

    1. 窗外,飘起了雪花。 凌晨,两点。睡眼朦胧的我,睁开了眼,发现哈巴子流了出来,迅速的抹掉。像偷吃糖...

  • 车厢

    车厢 一节节厢满载而来,像是赴死的刑场 一辆辆空车顷刻间被蜂拥而至的围堵 在狭窄的门缝,人挤着...

  • 车厢

    车厢 一节节厢满载而来,像是赴死的刑场 一辆辆空车顷刻间被蜂拥而至的围堵 在狭窄的门缝,人挤着...

  • 车厢

    坐了这么久的地铁,每次都是很拥挤的状态,今天第一次看到这么空的车厢 好兴奋啊 哈哈哈哈

网友评论

      本文标题:车厢排序

      本文链接:https://www.haomeiwen.com/subject/noikeftx.html