题解 | 火车进站

火车进站

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)
































代码很简单,但是很有意思,我想了很久没有想起来怎么写。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务