题解 | #火车进站#
火车进站
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)]
小米集团公司福利 868人发布