题解 | 火车进站
火车进站
https://www.nowcoder.com/practice/97ba57c35e9f4749826dc3befaeae109
'''ans=[]
n=input()
data=list(map(int,input().split()))
#print(data)
def dfs(wait,stack,out):
if not wait and not stack:
#ans.append(out)
ans.append(' '.join(map(str,out)))
if wait:
dfs(wait[1:],stack+[wait[0]],out)
if stack:
dfs(wait,stack[:-1],out+[stack[-1]])
dfs(data,[],[])
for i in sorted(ans):
print(i)'''
n=int(input())
x=list(map(int,input().split()))
#print(x)
ans=[]
def dfs(wait,stack,out):
if not wait and not stack:
#return out
ans.append(' '.join(map(str,out)))
if wait:
#print('wait[1:],stack+[wait[0]],out',wait[1:],stack+[wait[0]],out)
dfs(wait[1:],stack+[wait[0]],out)
if stack:
#print(666)
#print('wait,stack[:,-1],out+[stack[-1]]',wait,stack[:-1],out+[stack[-1]])
dfs(wait,stack[:-1],out+[stack[-1]])
dfs(x,[],[])
ans2=sorted(ans)
#print(ans)
for i in ans2:
print(i)
代码很简单,但是很有意思,我想了很久没有想起来怎么写。

携程公司氛围 125人发布
查看5道真题和解析