tüm permütasyon almak için bu algoritmayı açıklayınız:String Aşağıdaki kod bir dize için tüm permütasyon üreten
def permutations(word):
if len(word)<=1:
return [word]
#get all permutations of length N-1
perms=permutations(word[1:])
char=word[0]
result=[]
#iterate over all permutations of length N-1
for perm in perms:
#insert the character into every possible location
for i in range(len(perm)+1):
result.append(perm[:i] + char + perm[i:])
return result
nasıl çalıştığını açıklayabilir misiniz? Özyineyi anlamıyorum.
Size burada girinti hata var gibi, aynı zamanda, bu işaret değer görünüyor Bu kod tekerleği yeniden icat ediyor. Zaten standart kütüphanede 'itertools.permutations' var :-) - Bu kodu anlamanıza yardımcı olmasa da. – mgilson
"O" ve "bu adam" dan ne demek istiyorsun? –
@DavidRobinson Bence bu kodda neler olup bittiğini sormanın sadece "şirin" bir yolu. Soruyu, doğrudan soruyu istediği (ve aldığını) düşündüğüm bir açıklama istemek için yeniden yazdım. – Blckknght