У меня проблемы с программой, программа берет одно слово, и меняя одну букву за раз, преобразует это слово в целевое слово. Хотя имейте в виду, что преобразованное слово должно быть законным словом в соответствии со словарем слов, которые мне дали.
Мне трудно понять, как сделать это рекурсивным. Программа имеет ограничение на количество шагов, которые она должна предпринять.
Вывод должен быть списком. Так что, если параметры для смены функции
changeling («найти», «потерять»), вывод должен быть:
[ 'Найти', 'прекрасный', 'строка', 'одинокий', 'потерять'].
с моим текущим кодом:
def changeling(word,target,steps):
holderlist=[]
i=0
if steps<0 and word!=target:
return None
if steps!=-1:
for items in wordList:
if len(items)==len(word):
i=0
if items!=word:
for length in items:
if i==1:
if items[1]==target[1] and items[0]==word[0] and items[2:]==word[2:]:
if items==target:
print "Target Achieved"
holder.list.append(target)
holderlist.append(items)
holderlist.append(changeling(items,target,steps-1))
elif i>0 and i<len(word)-1 and i!=1:
if items[i]==target[i] and items[0:i]==word[0:i] and items[i+1:]==word[i+1:]:
if items==target:
print "Target Achieved"
holderlist.append(items)
holderlist.append(changeling(items,target,steps-1))
elif i==0:
if items[0]==target[0] and items[1:]==word[1:]:
if items==target:
print "Target Achieved"
holderlist.append(items)
holderlist.append(changeling(items,target,steps-1))
elif i==len(word)-1:
if items[len(word)-1]==target[len(word)-1] and items[0:len(word)-1]==word[0:len(word)-1]:
if items==target:
print "Target Achieved"
holderlist.append(items)
holderlist.append(changeling(items,target,steps-1))
else:
return None
i+=1
return holderlist
Я получаю грязный вывод:
['fine', ['line', ['lone', ['lost', []]]], 'fond', []]
Я получил ответ, который хотел, но я не уверен, как а) очистить его, не имея списков в списках. и б) появляется «фонд», потому что когда вызывается метод «найти», он дает «хорошо» и «фонд», «хорошо» - это тот, который заканчивается целевым словом, а «фонд» не удается, но я не уверен, как избавиться от него после добавления это к списку владельцев.
Любая помощь будет оценена.
Приветствие.