Schreiben Sie ein Programm oder eine Funktion, die einen mathematischen Ausdruck in Morsecode als Eingabe verwendet und die Lösung in Morsecode zurückgibt.
Gültige Operationen sind Plus: +
und Minus: _
(Unterstrich). Sie können davon ausgehen, dass Sie nur eine nicht negative Ganzzahleingabe erhalten und das Ergebnis nicht negativ ist.
Der Ausdruck enthält mindestens zwei und maximal zehn Begriffe. Es gibt also keine zwei benachbarten Operatoren .----+_-....
und keine runden Klammern.
Ziffern werden durch einzelne Leerzeichen getrennt. Sie können festlegen, dass die Operatoren auf jeder Seite durch ein einzelnes Leerzeichen von den Zahlen getrennt werden (siehe Beispiele).
Das Morse-Äquivalent für die Ziffern 0-9 ist:
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
Beispiele:
Input
Output
.----+.---- (1+1=2) Optional input: .---- + .----
..---
-...._...-- (6-3=3) Optional input: -.... _ ...--
...--
..---_...--+..--- (2-3+2=1)
1
..---+...--_....-+---.._..... (2+3-4+8-5=4)
....-
.---- ..---_-....+...-- ...-- (12-6+33=39)
...-- ----.
----. -----+----.+..--- ----._..... .....+---..+-...._.----+----.+----._..--- ----- (90+9+29-55+8+6-1+9+9-20=84)
---.. ....-
Es gelten die Standardregeln für E / A-Formate usw. Einige Leerzeichen und eine einzelne Zeile werden akzeptiert. Sie können die Nummer nicht auf mehrere Zeilen aufteilen. Sie können nicht eval
oder gleichwertig verwenden.
Das ist Code Golf, also gewinnt der kürzeste Code in Bytes.
J_.:s*R5"-.-"5
zum Aufbau der Zahlen. Wahrscheinlich sogar kürzen, wenn gepackte Saiten verwendet werden.