Найти - Пользователи
Полная версия: слово из слов
Начало » Python для новичков » слово из слов
1 2
Ferry_G
Помогите решить задачу

Даны заданное слово (список символов) и непустая последовательность слов (список символов): между словами запятые или пробелы, в конце точка. В словах могут встретиться ошибки – переставлены две соседние буквы, заменена одна буква, пропущена одна буква. Требуется найти в последовательности слов все слова, из которых могло бы получиться заданное слово в результате одной ошибки. Не использовать строковые функции
bs0d
напомнило: если в слове “хлеб” допустить четыре ошибки - получится “пиво”
Nata
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']
dimy44
Печальные мысли нахлынули. Топикстартер где-то учится (задачи-то не из жизни)? Это уже не первый пост, где тс ждет результата, сам ничё не делая. “Хорошие” специалисты выпускаются… (хорошо, если я ошибаюсь).
py.user.next
Nata
def 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]$

Перестановку одинаковых букв она считает дополнительной ошибкой. По идее, перестановка одинаковых букв не делает слово неправильным, следовательно, ошибкой не должно считаться.
Nata
все исправила, спасибо :D
FishHook
Господа, вас не удручает отсутствие ТСа в обсуждении его домашнего задания?
Не делайте медвежьих услуг, не решайте домашки тунеядцам. Во-первых, это просто западло само по себе:
он сейчас в танки играет, а вы за него работаете. Во-вторых, нафиг нужен такой специалист, не хочет учиться - метла, лопата, макдональдс, расклейка объявлений, да мало ли работы. В-третьих, знаю такого юношу, который так же вот побирался по форумам, а потом своим одногруппникам решения продавал.
В крайнем случае, пусть платит. Если денег нет, то пусть хотя бы песни поёт или анекдоты рассказывает.
Nata
не знаю, как остальные, а я решаю эти задачи для себя; я тоже учусь, мне полезно послушать/почитать критику и советы. Tопикстартер найдет у кого списать, даже если не здесь, на форуме :). A про несправедливость жизни: все станет очевидно на собеседовании при приеме на работу или на экзамене :)

P.S. кстати, читая и разбирая решения других, тоже много можно для себя полезного подчерпнуть; может тс так и делает :D
FishHook
пусть хотя бы песни поёт или анекдоты рассказывает.
я за!!!
py.user.next
FishHook
Во-вторых, нафиг нужен такой специалист
Ты же, вроде, учился в институте. Там же масштабы такие, что две задачки - это капля в море, даже меньше - нанокапля.

Другой пример - я одной девчёнке делал чуть ли не весь курс. Я опыта набрал - писец, при этом всё равно это было ничто в контексте всего обучения.

FishHook
В крайнем случае, пусть платит.
Это налагает обязанности, причём прибыль чуть ли не нулевая.

Nata
A про несправедливость жизни
Да ему до фонаря на справедливость, он просто хочет его подцепить на удочку. Ну, типа пишет про специалиста, а потом тут же предлагает продать ему задачу.
FishHook
py.user.next
Ну, типа пишет про специалиста, а потом тут же предлагает продать ему задачу.
Неужели ты меня считаешь за такую дешёвку?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB