Écrivez un programme ou une fonction qui prend en entrée une expression mathématique en code Morse et renvoie la solution en code Morse.
Les opérations valides sont plus: +
et moins: _
(souligné). Vous pouvez supposer que vous ne recevrez qu'une entrée entière non négative et que le résultat sera non négatif.
L'expression contiendra au moins deux termes et un maximum de dix termes. Il n'y aura pas deux opérateurs adjacents c'est .----+_-....
-à- dire , et il n'y aura pas de parenthèses.
Les chiffres sont séparés par des espaces simples. Vous pouvez choisir de séparer les opérateurs des nombres par un seul espace de chaque côté (voir exemples).
L'équivalent Morse pour les chiffres 0-9 est:
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
Exemples:
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)
---.. ....-
Les règles standard concernant les formats d'E / S, etc. s'appliquent. Quelques espaces de fin et une seule nouvelle ligne sont acceptés. Vous ne pouvez pas diviser le nombre sur plusieurs lignes. Vous ne pouvez pas utiliser eval
ou équivalent.
C'est le golf de code, donc le code le plus court en octets gagne.
J_.:s*R5"-.-"5
pour construire les nombres. Probablement même raccourci lors de l'utilisation de chaînes emballées.