1
resposta

Quantidade palavras - Gerador turbinado

Apenas para apresentar a resposta de uma dúvida levantada pelo @Thalles Rafael da Silva Correia, a qual transcrevo: Meu gerador turbinado para a palavra "lóiigica" está gerando um numero diferente de palavras do que do instrutor, mas não estou conseguindo encontrar o erro. O numero de palavras geradas pelo código do instrutor é 787396 contra 691744 no meu. Segue meu código:

def insere_letras(fatias):
  novas_palavras = []
  letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
  for E, D in fatias:
    for letra in letras:
      novas_palavras.append(E + letra + D)
  return novas_palavras

def deletando_caracteres(fatias):
  novas_palavras = []
  for E, D in fatias:
    novas_palavras.append(E +  D[1:])
  return novas_palavras

def troca_letra(fatias):
  novas_palavras = []
  letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
  for E, D in fatias:
    for letra in letras:
      novas_palavras.append(E + letra + D[1:])
  return novas_palavras

def inverte_letra(fatias):
  novas_palavras = []
  for E, D in fatias:
    if len(D) > 1:
      novas_palavras.append(E +  D[1] + D[0] + D[2:])
  return novas_palavras

def gerador_palavras(palavra):
  fatias = []
  for i in range(len(palavra)+1):
        fatias.append((palavra[:i],palavra[i:]))
  palavras_geradas = insere_letras(fatias)
  palavras_geradas += deletando_caracteres(fatias)
  palavras_geradas += troca_letra(fatias)
  palavras_geradas += inverte_letra(fatias)
  return palavras_geradas
palavra = "lóiigica"

def gerador_turbinado(palavras_geradas):
    novas_palavras = []
    for palavra in palavras_geradas:
        novas_palavras += gerador_palavras(palavra)
    return novas_palavras

palavras_g = gerador_turbinado(gerador_palavras(palavra))
"lógica" in palavras_g

Tal erro acontece porque na variável que contém a lista de letras faltam algumas letras acentuadas, como "ĩ, ẽ, ũ", causando o número reduzido de palavras quando comparado com o código do professor.

1 resposta

Oi, Felipe! Tudo bem?

Muito obrigada pela sua contribuição aqui no fórum, tenho certeza que vai ajudar não só o Thalles mas também outros alunos e alunas.

Tomei proveito de sua resposta e a enviei como referência no tópico dele.

Bons estudos!