Форум сайта python.su
0
Помогите решить задачу
Даны заданное слово (список символов) и непустая последовательность слов (список символов): между словами запятые или пробелы, в конце точка. В словах могут встретиться ошибки – переставлены две соседние буквы, заменена одна буква, пропущена одна буква. Требуется найти в последовательности слов все слова, из которых могло бы получиться заданное слово в результате одной ошибки. Не использовать строковые функции
Офлайн
2
напомнило: если в слове “хлеб” допустить четыре ошибки - получится “пиво”
Офлайн
6
import re def wof(string, my_word): sep=re.compile("[,. ]+") words = re.split(sep, string) word=list(my_word) match=[] for w in words: st=list(w) if len(st)==len(word)-1 and all([letter in word for letter in st]): for i in range(len(word)): test=st[:] test.insert(i, word[i]) if test==word: match.append(w) elif len(st)==len(word) and all([st.count(letter)==word.count(letter) for letter in st]): count=0 for i in range(len(st)-1): test=word[:] test[i],test[i+1]=test[i+1],test[i] if test==st and test[i]!=test[i+1]: count+=1 if count==1: match.append(w) elif len(st)==len(word): pairs=zip(word,st) err=0 for w1,w2 in pairs: if w1!=w2: err+=1 if err==1: match.append(w) else: pass return set(match) print wof("nato, the doggie nataa nt anat says Wof, nate ghytr naat nta bgfd eata nyta nala wof-wof, nat ata.", "nata")
nata@mycomp ~ $ ./wof.py ['nato', 'nate', 'naat', 'nta', 'eata', 'nyta', 'nala', 'nat', 'ata']
Отредактировано Nata (Окт. 16, 2014 09:03:20)
Офлайн
Печальные мысли нахлынули. Топикстартер где-то учится (задачи-то не из жизни)? Это уже не первый пост, где тс ждет результата, сам ничё не делая. “Хорошие” специалисты выпускаются… (хорошо, если я ошибаюсь).
Офлайн
857
Natadef wof(string, my_word):
[guest@localhost werr]$ python3 -mdoctest werr.test
**********************************************************************
File "werr.test", line 14, in werr.test
Failed example:
f('xx', 'xx')
Expected:
[]
Got:
['xx']
**********************************************************************
File "werr.test", line 51, in werr.test
Failed example:
f('wood', 'word')
Expected:
['wood']
Got:
[]
**********************************************************************
1 items had failures:
2 of 30 in werr.test
***Test Failed*** 2 failures.
[guest@localhost werr]$
Отредактировано py.user.next (Окт. 16, 2014 02:08:41)
Офлайн
6
все исправила, спасибо :D
Отредактировано Nata (Окт. 16, 2014 09:02:01)
Офлайн
568
Господа, вас не удручает отсутствие ТСа в обсуждении его домашнего задания?
Не делайте медвежьих услуг, не решайте домашки тунеядцам. Во-первых, это просто западло само по себе:
он сейчас в танки играет, а вы за него работаете. Во-вторых, нафиг нужен такой специалист, не хочет учиться - метла, лопата, макдональдс, расклейка объявлений, да мало ли работы. В-третьих, знаю такого юношу, который так же вот побирался по форумам, а потом своим одногруппникам решения продавал.
В крайнем случае, пусть платит. Если денег нет, то пусть хотя бы песни поёт или анекдоты рассказывает.
Офлайн
6
не знаю, как остальные, а я решаю эти задачи для себя; я тоже учусь, мне полезно послушать/почитать критику и советы. Tопикстартер найдет у кого списать, даже если не здесь, на форуме :). A про несправедливость жизни: все станет очевидно на собеседовании при приеме на работу или на экзамене :)
P.S. кстати, читая и разбирая решения других, тоже много можно для себя полезного подчерпнуть; может тс так и делает :D
FishHookя за!!!
пусть хотя бы песни поёт или анекдоты рассказывает.
Офлайн
857
FishHookТы же, вроде, учился в институте. Там же масштабы такие, что две задачки - это капля в море, даже меньше - нанокапля.
Во-вторых, нафиг нужен такой специалист
FishHookЭто налагает обязанности, причём прибыль чуть ли не нулевая.
В крайнем случае, пусть платит.
NataДа ему до фонаря на справедливость, он просто хочет его подцепить на удочку. Ну, типа пишет про специалиста, а потом тут же предлагает продать ему задачу.
A про несправедливость жизни
Отредактировано py.user.next (Окт. 16, 2014 10:13:15)
Офлайн
568
py.user.nextНеужели ты меня считаешь за такую дешёвку?
Ну, типа пишет про специалиста, а потом тут же предлагает продать ему задачу.
Офлайн