Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2010 22:13:14

AmF
От:
Зарегистрирован: 2010-09-16
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция на строки

Всем привет!

Прошу помочь разобраться, как решить задачу (хочу понять алгоритм решения): в каком-то языке есть только 4 звука, назовем их А, В, C, D, а алфавит этого языка состоит из 10 букв: E, F, G, H, I, J, K, L, M, N. Система такая: каждым 3 звукам соответствует 1 буква согласно правилам. Вот эти правила: ABC -> G, ACD -> M, CAD -> J, CDA -> M, CCC -> A и т.д. (все правила не привожу - хочу просто общую схему алгоритма понять). Надо бы написать функцию, которая принимает строку звуков (3 символа), а возвращает букву (строка в 1 символ). Важное замечание: if, else использовать запрещается.

Спасибо за любую помощь.



Офлайн

#2 Сен. 18, 2010 22:50:21

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция на строки

Насколько я понял задачу. Тебе нужно завести словарь (dict) соответствий, ключами к которому будут звуки а значениями буквы.



Отредактировано (Сен. 18, 2010 22:51:46)

Офлайн

#3 Сен. 19, 2010 08:46:37

AmF
От:
Зарегистрирован: 2010-09-16
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция на строки

Ну, можно и словарь, но только как потом организовать поиск без иф-элс?



Офлайн

#4 Сен. 19, 2010 09:00:19

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Функция на строки

d = {'ABC':'G', 'ACD' :'M', 'CAD' : 'J', 'CDA' : 'M', 'CCC': 'A'}

slovo = 'F,ACD,CCC,ABC'

print ''.join([d.get(zvyk,'') for zvyk in slovo.split(',')])



Офлайн

#5 Сен. 19, 2010 09:14:35

AmF
От:
Зарегистрирован: 2010-09-16
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция на строки

У меня такая ситуация, что несколько комбинаций звуков может обозначать 1 букву, например: ATT -> I, ATC -> I, ATA -> I. Т.к. питон мы только начали проходить, то мне не совсем понятно, как тогда оформить поиск. Вот что получится:

d = {'I': ['ATT', 'ATC' , 'ATA'], и т.д.}
Как здесь тогда действовать?

Спасибо!



Офлайн

#6 Сен. 19, 2010 09:26:32

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция на строки

AmF
Как здесь тогда действовать?
Вот так:
d = {'ATT':'I', 'ATC':'I' , 'ATA':'I', и т.д.}



Офлайн

#7 Сен. 19, 2010 09:35:51

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Функция на строки

d = {'ABC':'G', ‘ACD’ :'M', ‘CAD’ : ‘J’, ‘CDA’ : ‘M’, ‘CCC’: ‘A’, ‘ATT’ : ‘I’, ‘ATC’ : ‘I’, ‘ATA’ :'I'}
и тот же самый код



Отредактировано (Сен. 19, 2010 09:36:29)

Офлайн

#8 Сен. 19, 2010 09:40:08

AmF
От:
Зарегистрирован: 2010-09-16
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция на строки

А, ага, спасибо - буду пробовать.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version