Estou fazendo um programa que busca palavras inversas (pedro e ordep, por exemplo) em um arquivo cuja cada linha é uma palavra (link:https://drive.google.com/open?id=15aj-5coD_dBKIunMHuGZTAT3cgkrSuyD). Tentei usar um algoritmo de for para buscar cada inverso na lista, mas o programa para na primeira iteração do loop. abaixo o código completo:
def seek_word(lista, word): //procura a palavra na lista de maneira otimizada
length = len(lista)
if len(lista) == 0:
return False
middle_word = lista[int(length / 2)]
if word == middle_word:
lista = [lista[int(length / 2)]]
return True
elif word > middle_word:
del lista[:int(length / 2) + 1]
return seek_word(lista, word)
elif word < middle_word:
del lista[int(length / 2):]
return seek_word(lista, word)
def create_list(fin): //cria uma lista com as palavras do arquivo
lista = []
for line in fin:
lista.append(line.strip())
return lista
with open('files/words.txt') as fin:
lista = create_list(fin)
for word in lista:
if seek_word(lista, word[::-1].strip()):
print('{} is inverse of {}'.format(word[::-1], word))
Pergunta
gustadsg
Estou fazendo um programa que busca palavras inversas (pedro e ordep, por exemplo) em um arquivo cuja cada linha é uma palavra (link:https://drive.google.com/open?id=15aj-5coD_dBKIunMHuGZTAT3cgkrSuyD). Tentei usar um algoritmo de for para buscar cada inverso na lista, mas o programa para na primeira iteração do loop. abaixo o código completo:
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.