É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.
la source
J_.:s*R5"-.-"5
pour construire les nombres. Probablement même raccourci lors de l'utilisation de chaînes emballées.Rétine, 132 octets
Une solution de premier passage désordonnée.
Essayez-le en ligne!
la source
MATL ,
75716968 octetsEssayez-le en ligne!
Explication générale
J'utilise le format de code dans ce qui suit pour que l'indentation exprime l'imbrication des opérations.
Explication détaillée
la source
Javascript (es6) 236 octets
beaucoup de place pour l'amélioration
brisé
usage
la source
Pure bash,
366317Ok, je pourrais économiser 10 octets pour atteindre 307 en 1ère ligne écrite:
au lieu de (mais j'aime):
Échantillon:
ou si le
morse
convertisseur n'est pas installé:la source