题解 | #火车进站#
火车进站
https://www.nowcoder.com/practice/97ba57c35e9f4749826dc3befaeae109
递归实现。
def dfs(left: list, right: list, res_temp: list): # left代表站内的,right代表站外的,res_temp代表出战的 if not right and not left: return res_list.append(res_temp) if not left: # 没进过只能进 dfs(left + [right[0]], right[1:], res_temp) elif not right: # 进完了只能出 dfs(left[:-1], right, res_temp + [left[-1]]) else: dfs(left + [right[0]], right[1:], res_temp) # 想进就进 dfs(left[:-1], right, res_temp + [left[-1]]) # 想出就出 n, train, res_list = input(), input().split(' '), [] dfs([], train, []) [print(' '.join(i)) for i in sorted(res_list)]