Я пытаюсь написать программу, которая имитирует игру слов, где из заданного набора слов найдет максимально возможную последовательность слов. Ни одно слово не может использоваться дважды.Python слова игры. Последняя буква первого слова == первая буква второго слова. Найти максимально возможную последовательность слов
Я могу делать соответствующие буквы и слова вверх и хранить их в списках, но у меня возникают проблемы с тем, как обрабатывать потенциально экспоненциальное число возможностей слов в списках. Если слово 1 соответствует слову 2, а затем я спускаюсь по этому маршруту, как я могу вернуться назад, чтобы увидеть, соответствуют ли слова 3 или 4 словом один, а затем начинают свои собственные маршруты, все из первого слова?
Я думал о некотором способе вызвать функцию внутри себя, может быть?
Я знаю, что это не так, как будто я делаю то, что мне нужно, но это начало. Заранее благодарю за любую помощь!
g = "audino bagon baltoy banette bidoof braviary bronzor carracosta charmeleon cresselia croagunk darmanitan deino emboar emolga exeggcute gabite girafarig gulpin haxorus"
def pokemon():
count = 1
names = g.split()
first = names[count]
master = []
for i in names:
print (i, first, i[0], first[-1])
if i[0] == first[-1] and i not in master:
master.append(i)
count += 1
first = i
print ("success", master)
if len(master) == 0:
return "Pokemon", first, "does not work"
count += 1
first = names[count]
pokemon()