我應該寫一個程序,它的二進制代碼和數字的字符串,並輸出所有字符串的原始字符串的是漢明距離之內。我有一個可以完成所有任務的函數,但是在輸出中有列表中的列表。我明白爲什麼這是 - 函數是遞歸的,有時它會返回一個可能的值列表。追加一個列表和遞歸(海明距離) - Python的3
的問題是,我不知道該怎麼那麼它輸出完整的字符串改變它。例如,對於 「0000」 的字符串和漢明距離爲 「2」,我得到: [ 「1 [ '100', '010', '001']」,「01 ['10' , '01'] 」, 「001 [ '1']」]
但我想要的是:
1100
1010
1001
0110
0101
0011
代碼如下:
def hamming(num, dist):
if dist == 0:
return num
else:
outputlist = list()
for item in range(len(num)):
if len(num[item:]) > dist - 1:
if num[item] == "0":
restoflist = hamming(num[item + 1:], dist - 1)
outputlist.append(num[:item] + "1" + str(restoflist))
else:
restoflist = hamming(num[item + 1:], dist - 1)
outputlist.append(num[:item] + "0" + str(restoflist))
return outputlist