题解 | #火车进站#

火车进站

https://www.nowcoder.com/practice/97ba57c35e9f4749826dc3befaeae109




# wait:等待进站
#stack:进站列表
#out:出站列表

def f(wait,stack,out):
    if not wait and not stack:      # 所有的车都出站了,即wait和stack均为空,空本身就是false,not空=true
        res.append(' '.join(out))
    if wait:        #如果有车在等待
        f(wait[1:],stack+[wait[0]],out) #进站
    if stack:
       f(wait,stack[:-1],out+[stack[-1]])    #出站,用+连接两个列表

n = int(input())  #火车数量
num = input().split()
res = []  # 存放出站编号
f(num,[],[])
# 排序后输出
for i in sorted(res):
    print(i)

全部评论

相关推荐

03-07 17:32
已编辑
中南大学 C++
是只吗喽:淘天和米哈游之间只隔了15分钟,有点极限了xd
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务