我在https://www.hackerrank.com/challenges/itertools-permutations/problem上解决了Hackerrank上的itertools.permutations()代码,我提出了以下非常简单的代码:
from itertools import permutations
to_perm, length = raw_input().split()
length = int(length)
res = permutations(to_perm, length)
new_res = []
for i in res:
new_res = sorted(res)
for i in new_res:
print "".join(i)
这是我得到的输出:
AC
AH
AK
CA
CH
CK
HC
HK
KA
KC
KH
这是我的预期输出:
AC
AH
AK
CA
CH
CK
HA
HC
HK
KA
KC
KH
你会注意到我错过了'HA'的排列。
我的问题是:为什么我错过了这个单一的排列?我该如何解决这个问题?
我不确定你的代码中HA
会发生什么。此代码输出正确的结果:
from itertools import permutations
to_perm, length = 'HACK', 2
res = permutations(to_perm, length)
res = sorted(res)
for perm in res:
print ''.join(perm)
输出
AC
AH
AK
CA
CH
CK
HA
HC
HK
KA
KC
KH