Czytam this proste i eleganckie rozwiązanie Pythona do znajdowania wszystkich permutacji danego ciągu znaków. Jest rekurencyjny. Na tej podstawie próbowałem zaimplementować rozwiązanie iteracyjne w pythonie.Iteracyjne rozwiązanie dla: - Znajdowania permutacji String
Poniżej znajduje się mój kod. Ale działa tylko dla 3-znakowych ciągów znaków :(Utknął próbując sprawdzić, w jaki sposób warunek bazowy rekurencji i warunek rekursji przekłada się na iteracyjny (nierekurencyjny). Wszystkie wskaźniki pomogłyby w stworzeniu działającego iteracyjnego rozwiązania. (Oparte na tym algorytmie lub dowolnym algorytmie inne)
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")
Dzięki za link, który wyjaśniłem i za rozwiązanie. – goldenmean
excellent.elegant – user2290820
idealne i zadbane! – deeshank