на руби:
Код:
LETTER = Hash[*%w"
A .- N -.
B -... O ---
C -.-. P .--.
D -.. Q --.-
E . R .-.
F ..-. S ...
G --. T -
H .... U ..-
I .. V ...-
J .--- W .--
K -.- X -..-
L .-.. Y -.--
M -- Z --..
"]
MORSE = LETTER
def morse text
text.upcase.chars.map { |char| MORSE[char] or unknown(char) }.join
end
def unknown char
"(#{ char })"
end
raise unless morse('Sofia') == '...---..-....-'
raise unless morse('123') == '(1)(2)(3)'
Hash[*%w"....."] - эта магия разбивает текст по пробелам и переносам строки(регулярным выражением
) в одномерный массив, и создаёт отображение нечётных его элементов на чётные