我正在尝试使用Python中的递归来解决一些共有性任务
有人能检查一下这个代码并告诉我它为什么返回None
吗?我想在名为"solution"的变量中获取[4, 5]
。
def rec_fun(upstream,downstream):
if not upstream or not downstream :
if upstream :
return upstream
if downstream:
return downstream
if upstream[0] >downstream[0] :
downstream.pop(0)
else:
upstream.pop(0)
rec_fun(upstream,downstream)
def solution(A, B):
upstream=[]
downstream=[]
n=len(A)
for i in range(0,n) :
if B[i]==0:
upstream.append(A[i])
else:
downstream.append(A[i])
upstream=sorted(upstream)
downstream=sorted(downstream)
return rec_fun(upstream,downstream)
A=[4,3,2,1,5]
B=[0,1,0,0,0]
solution = solution(A, B)
print solution
输出为:output = None
,应为[4, 5]
。
在递归函数中,您不会执行任何return
操作。您必须添加一些return
语句。即:
return rec_fun(upstream,downstream)