题解 | #火车进站#

火车进站

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

火车进站出站,固定的递归方法,需要记住

#固定的递归方法,需要记住
res = [] #定义全局变量

def dfs(wait, stack, out):
    if not wait and not stack:
        res.append(' '.join(map(str, out)))
    if wait: # 入栈,一开始一股脑都入栈
        dfs(wait[1:], stack + [wait[0]], out)
    if stack: # 出栈,之后慢慢出栈
        dfs(wait, stack[:-1], out + [stack[-1]])

while True:
    try:
        n, nums = int(input()), list(map(int, input().split()))
        dfs(nums, [], [])
        for i in sorted(res):
            print(i)
    except:
        break

全部评论
没理解 为啥出栈第一次后的时候 stack为0 还可以继续出呢
点赞 回复 分享
发布于 2022-04-20 17:34

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
牛客162194370号:
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
评论
13
3
分享
牛客网
牛客企业服务