宿題でこの質問に本当に固執しました。
すべてが機能しますが、 にスペース ( ' ') がある場合p。の作成プロセスを停止する必要がありますcan。
たとえば、私が提出した場合:
rankedVote("21 4", [('AB', '132'), ('C D', ''), ('EFG', ''), ('HJ K', '2 1')])
私はを頂きたい:
['C D', 'AB']
[]今のようではなく、戻ってきました。
以下のようにコードします。
def rankedVote(p,cs):
candsplit = zip(*cs)
cand = candsplit[0]
vote = list(p)
ppl = vote
can = list(p)
for i in range(len(vote)):
if ' ' in vote[i-1]:
return []
else:
vote[i] = int(vote[i])
can[vote[i]-1] = cand[i]
for i in range(len(vote)):
for j in range(len(vote)):
if i != j:
if vote[i] == vote[j]:
return []
return can
編集:
例では:
rankedVote("21 4", [('AB', '132'), ('C D', ''), ('EFG', ''), ('HJ K', '2 1')])
これは、1 番目ABが 2 番目になり、2 番目C Dが 1 番目になることを意味し、3 番目が存在しないため停止する必要があります。
21 4ではなく、だったとしましょう2143。3 番目EFGは 4 番目、4 番目HJ Kは 3 番目ということになります。