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.
quelle
J_.:s*R5"-.-"5
zum Aufbau der Zahlen. Wahrscheinlich sogar kürzen, wenn gepackte Saiten verwendet werden.Netzhaut, 132 Bytes
Eine unordentliche First-Pass-Lösung.
Probieren Sie es online!
quelle
MATL ,
75716968 BytesProbieren Sie es online!
Allgemeine Erklärung
Im Folgenden verwende ich das Code-Format, damit der Einzug die Verschachtelung von Operationen ausdrückt.
Ausführliche Erklärung
quelle
Javascript (es6) 236 Bytes
viel Raum für Verbesserungen
aufgebrochen
Verwendung
quelle
Pure Bash,
366317Ok, ich könnte 10 Bytes einsparen, um 307 zu erreichen, indem ich die erste Zeile schreibe:
statt (aber ich mag):
Probe:
oder wenn der
morse
Konverter nicht installiert ist:quelle