2017-09-20 12 views
0

私はこのことについてちょっと覗き込んでしまい、この正確な問題では何の疑問も見つかりませんでした。ここで私たちは行く:リストと整数の組をPythonで返します

私は分割と征服のパラダイムを使用して数字のリスト内の反転の数を数えるPythonでコードを書いています。

def invertions(vec): 
    i = c = 0 
    j = int(len(vec)/2) 

    # base case 
    if (int(len(vec) == 1)): 
     return 0 

    v1 = vec[:int(len(vec)/2)] 
    v2 = vec[int(len(vec)/2):] 

    (v1, a) = invertions(v1) 
    (v2, b) = invertions(v2) 

    vec = v1 + v2 

    while(i < int(len(vec)/2) and j < len(vec)): 
     if(vec[i] > vec[j]): 
      c += (j-i + (j - int(len(vec)/2))) 
      j += 1 
     else: 
      i += 1 

    vec.sort() 

    return list(vec, a + b + c) 

ある点では、部分リストとその部分リストの逆数の数を返す必要があります。しかし、何らかの理由で関数がタプルタイプを返すのではなく、intを返しています。

質問です:どのように私はPythonで関数の中で(私はこれがあるか、問題の原因でないかどうかわからないんだけど)、異なるタイプのタプルまたはリストを返すのですか?タプル自体は全く問題ではありません事前

+0

を解くことは、機能が異なる型を返すということも可能です。 Pythonでは、あなたが作業しているタイプを知る必要はありません。 – Idan

+1

サンプルの入出力を提供し、何を反転として数えることができますか? 0/1、1/0、両方、1/-1? – TemporalWolf

+5

ベースケースに 'return 0'があります – wim

答えて

0

ありがとう!基本ケースは整数のみを返します。

return (vec, 0) 

にライン

return 0 

を変更すると、問題

関連する問題