Ich lese this einfache und elegante Python-Lösung zum Finden aller Permutationen einer gegebenen Zeichenfolge. Es ist rekursiv. Darauf aufbauend habe ich versucht, eine iterative Lösung in Python zu implementieren.Iterative Lösung für: - Finden von String-Permutationen
Unten ist mein Code. Aber es funktioniert nur für 3-Zeichen-Strings :(Stuck versucht zu sehen, wie die Rekursion Base Case-Bedingung und Rekursion Bedingung in iterative (nicht-rekursive) übersetzt Any Pointer würde helfen, eine iterative Lösung arbeiten. (Entweder basierend auf diesem Algorithmus oder andere andere)
def permutations_iter(word):
while True:
perms = []
result = []
char = word[0]
new_word = word[1:]
if len(new_word)==2:
perms = [new_word,''.join(reversed(new_word))]
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
if len(new_word)==2:
break;
#example code to call this iterative function
print permutations_iter("LSE")
Danke für den Link, der erklärt Und für die Lösung. – goldenmean
excellent.elegant – user2290820
perfekt und ordentlich! – deeshank