diff --git a/translate.py b/translate.py new file mode 100644 index 0000000..e108660 --- /dev/null +++ b/translate.py @@ -0,0 +1,41 @@ +import re + +pattern = re.compile(r"^[\.-]+(\|\|[\.-]+)*(\|\|\|\|[\.-]+(\|\|[\.-]+)*)*$") + +alpha = { + ".-": "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 translate(code: str): + if not bool(pattern.match(code)): + raise Exception("Invalid Morse Code!") + + return "".join(alpha[x] for x in code.split("||"))