2016-04-18 10 views
0

Ich versuche, einige Codilität Aufgabe mithilfe von Rekursion in Python zu lösen.
Kann jemand diesen Code überprüfen und mir sagen, warum er None zurückgibt? Ich möchte [4, 5] in der Variablen namens "Lösung" erhalten.Warum Python-Rekursion zurückgeben Keiner Wert

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 

Die Ausgabe lautet: output = None, sollte es [4, 5] sein.

+0

'return rec_fun (Upstream, Downstream)' –

Antwort

0

In Ihrer rekursiven Funktion sind Sie nicht return. Sie müssen einige return Anweisung hinzufügen. Nämlich:

return rec_fun(upstream,downstream) 
+0

Ich habe 2 kehrt Rückkehr stromaufwärts und stromabwärts zurückzukehren .. – ivan

+0

Wenn yo UADD hier drucken: wenn Upstream: print "return" Druck stromaufwärts Rückkehr stromaufwärts Du wirst sehen, wovon ich rede. – ivan

+0

es funktioniert jetzt, tnx – ivan

Verwandte Themen