Tôi đọc this giải pháp trăn đơn giản và thanh lịch để tìm tất cả hoán vị của một chuỗi nhất định. Nó là đệ quy. Dựa trên đó tôi đã cố gắng thực hiện một giải pháp lặp trong python.Giải pháp lặp lại cho: - Tìm các hoán vị chuỗi
Dưới đây là mã của tôi. Nhưng nó chỉ hoạt động cho 3 chuỗi ký tự: (Stuck cố gắng để xem tình trạng trường hợp đệ quy và điều kiện đệ quy chuyển thành lặp đi lặp lại (không đệ quy) Bất kỳ con trỏ nào sẽ giúp có được một giải pháp lặp đi lặp lại (hoặc dựa trên thuật toán này hoặc bất kỳ khác)
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")
Cảm ơn bạn đã liên kết giải thích Và cho giải pháp. – goldenmean
excellent.elegant – user2290820
hoàn hảo và gọn gàng! – deeshank