-
Notifications
You must be signed in to change notification settings - Fork 0
/
morse_code.rb
55 lines (49 loc) · 971 Bytes
/
morse_code.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
MORSE_CODE = {
"a" => ".-",
"b" => "-...",
"c" => "-.-.",
"d" => "-..",
"e" => ".",
"f" => "..-.",
"g" => "--.",
"h" => "....",
"i" => "..",
"j" => ".---",
"k" => "-.-",
"l" => ".-..",
"m" => "--",
"n" => "-.",
"o" => "---",
"p" => ".--.",
"q" => "--.-",
"r" => ".-.",
"s" => "...",
"t" => "-",
"u" => "..-",
"v" => "...-",
"w" => ".--",
"x" => "-..-",
"y" => "-.--",
"z" => "--.."
}
def morse_encode(str)
words = str.split("")
result = ""
words.map{ |idx|
result << " " if idx == " "
result << MORSE_CODE[idx].to_s << " " unless idx == " "
}
result
end
def morse(str)
words = str.split("")
encodedWords = words.map {|i| encoded(i)}
encodedWords.join(" ")
end
def encoded(i)
letters = i.split("")
encodedLetters = letters.map{|l| MORSE_CODE[l]}
encodedLetters.join(" ")
end
puts morse("cat in hat")
puts morse_encode("cat in hat")