Write a purely recursive Python function called
Merge3
that takes three lists of numbers each sorted in increasing order as input and outputs a single sorted list by merging elements from the three lists in proper increasing order. For example,Merge3([1,2,72,108],[3,4,94,103],[45,67,456])
should return a list[1,2,3,4,45,67,72,94,103,108,456]
.
我可以为两个列表编写一个版本,但是我正在努力想出一个紧凑的方法来实现这三个列表。请参阅下面的示例:
def Merge2(A, B):
if A == []:
return B
if B == []:
return A
if A != [] and B != []:
if A[0] > B[0]:
return [B[0]] + Merge(A, B[1:])
else:
return [A[0]] + Merge(A[1:], B)
print(Merge2([1, 2, 6, 7],[3, 4, 8, 9]))
有没有一个简单的方法来处理我丢失的三个列表?我觉得这需要很多额外的检查,这将使程序相当长。你能想出一个简洁的方法来做这三个清单吗?在
解决此问题的一个简单方法是重用您已经拥有的
Merge2
:雅诺斯对
Merge3
的回答是完美的。我确实想给你一个改进Merge2
但是-相关问题 更多 >
编程相关推荐