Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 15, 2014 20:36:42

Ferry_G
Зарегистрирован: 2014-10-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

слово из слов

Помогите решить задачу

Даны заданное слово (список символов) и непустая последовательность слов (список символов): между словами запятые или пробелы, в конце точка. В словах могут встретиться ошибки – переставлены две соседние буквы, заменена одна буква, пропущена одна буква. Требуется найти в последовательности слов все слова, из которых могло бы получиться заданное слово в результате одной ошибки. Не использовать строковые функции

Офлайн

#2 Окт. 15, 2014 21:46:21

bs0d
Зарегистрирован: 2014-02-01
Сообщения: 76
Репутация: +  2  -
Профиль   Отправить e-mail  

слово из слов

напомнило: если в слове “хлеб” допустить четыре ошибки - получится “пиво”

Офлайн

#3 Окт. 15, 2014 22:18:20

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

слово из слов

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)

Офлайн

#4 Окт. 15, 2014 22:34:28

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

слово из слов

Печальные мысли нахлынули. Топикстартер где-то учится (задачи-то не из жизни)? Это уже не первый пост, где тс ждет результата, сам ничё не делая. “Хорошие” специалисты выпускаются… (хорошо, если я ошибаюсь).

Офлайн

#5 Окт. 16, 2014 02:00:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

слово из слов

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]$

Перестановку одинаковых букв она считает дополнительной ошибкой. По идее, перестановка одинаковых букв не делает слово неправильным, следовательно, ошибкой не должно считаться.



Отредактировано py.user.next (Окт. 16, 2014 02:08:41)

Офлайн

#6 Окт. 16, 2014 08:50:10

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

слово из слов

все исправила, спасибо :D



Отредактировано Nata (Окт. 16, 2014 09:02:01)

Офлайн

#7 Окт. 16, 2014 09:02:24

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

слово из слов

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



Офлайн

#8 Окт. 16, 2014 09:29:13

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

слово из слов

не знаю, как остальные, а я решаю эти задачи для себя; я тоже учусь, мне полезно послушать/почитать критику и советы. Tопикстартер найдет у кого списать, даже если не здесь, на форуме :). A про несправедливость жизни: все станет очевидно на собеседовании при приеме на работу или на экзамене :)

P.S. кстати, читая и разбирая решения других, тоже много можно для себя полезного подчерпнуть; может тс так и делает :D

FishHook
пусть хотя бы песни поёт или анекдоты рассказывает.
я за!!!



Офлайн

#9 Окт. 16, 2014 10:09:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

слово из слов

FishHook
Во-вторых, нафиг нужен такой специалист
Ты же, вроде, учился в институте. Там же масштабы такие, что две задачки - это капля в море, даже меньше - нанокапля.

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

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

Nata
A про несправедливость жизни
Да ему до фонаря на справедливость, он просто хочет его подцепить на удочку. Ну, типа пишет про специалиста, а потом тут же предлагает продать ему задачу.



Отредактировано py.user.next (Окт. 16, 2014 10:13:15)

Офлайн

#10 Окт. 16, 2014 10:31:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

слово из слов

py.user.next
Ну, типа пишет про специалиста, а потом тут же предлагает продать ему задачу.
Неужели ты меня считаешь за такую дешёвку?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version