题解 | #火车进站#

火车进站

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

# 使用深度优先搜,递归的出栈,直到站内与待入的都没有火车了,将结果记录
def dfs(nums, stack, temp, res):
    if not stack and not nums:
        res.append(' '.join(temp))
        return 

    if stack:
        temp.append(stack.pop())
        dfs(nums, stack, temp, res)
        stack.append(temp.pop())
    
    if nums:
        stack.append(nums.pop(0))
        dfs(nums, stack, temp, res)
        nums.insert(0,stack.pop())

N = int(input())
nums = input().split()
temp = []
res = []
stack = []
dfs(nums,stack,temp,res)
res.sort()

for r in res:
    print(r)

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务