1
resposta

Exibir todos os anagramas de uma dada palavra (sem usar o módulo itertools) e com uma solução não-recursiva?

Alguma ideia de como exibir todos os anagramas de uma dada string sem usar o módulo itertools e com uma solução não-recursiva?

Se pudesse usar o itertools:

import itertools

string = 'car'
anagramas = []
for anagrama in itertools.permutations(string):
    anagramas.append(''.join(anagrama))

print(anagramas)

Alguma ideia?

1 resposta

Oi Edson, como você está?

Peço desculpas pela demora em responder.

É realmente um desafio implementar esse problema sem o auxílio da intertools e sem o auxílio de uma função recursiva. Porém, no artigo Encontre todas as permutações de uma string em Python- em inglês: Find all permutations of a string in Python, o(a) autor(a) ensina como realizar essa implementação iterativa. A ideia por trás do método iterativo é armazenar parcialmente cada permutação, porém, é um código de complexidade alta, ou seja, consome muita memória, uma vez que terá três laços de repetição aninhados (um dentro do outro). Recomendo que leia esse artigo e analise com calma o código e realize alguns testes e coloque prints para conseguir entender melhor sobre cada procedimento que está sendo feito.

O artigo está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!