题解 | #火车进站#
火车进站
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)
查看6道真题和解析