-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathmorz.py
76 lines (69 loc) · 1.63 KB
/
morz.py
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/python
import sys
class Morse:
def __init__(self):
self.morseAlphabet ={
"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" : "--..",
" " : "/",
"1" : ".----",
"2" : "..---",
"3" : "...--",
"4" : "....-",
"5" : ".....",
"6" : "-....",
"7" : "--...",
"8" : "---..",
"9" : "----.",
"0" : "-----",
"." : ".-.-.-",
"," : "--..--",
":" : "---...",
"?" : "..--..",
"'" : ".----.",
"-" : "-....-",
"/" : "-..-.",
"@" : ".--.-.",
"=" : "-...-"
}
self.flippedMorseAlphabet = flippedMorseAlphabet = dict((v,k) for k,v in self.morseAlphabet.items())
def encode(self, str):
encoded = ""
for char in str:
encoded += self.morseAlphabet[char]+" "
return encoded
def decode(self, str, separator=" "):
morseList = str.split(separator)
decoded = ""
for morseChar in morseList:
decoded += self.flippedMorseAlphabet[morseChar]
return decoded
if __name__ == '__main__':
input = ".---- .---- .----"
morseDecoder = Morse()
print morseDecoder.decode(input)
print morseDecoder.encode(morseDecoder.decode(input))