Напишіть програму або функцію, яка приймає математичний вираз у коді Морзе як вхідний і повертає рішення в код Морзе.
Дійсні операції плюс: +
і мінус: _
(підкреслення). Можна припустити, що ви отримаєте лише невід'ємне ціле число, а результат буде негативним.
Вираз буде містити щонайменше два терміни та максимум десять термінів. Не буде двох суміжних операторів, тобто .----+_-....
не буде дужок.
Цифри відокремлюються окремими пробілами. Можна вибрати, щоб оператори були відокремлені від чисел по одному пробілу з кожного боку (див. Приклади).
Еквівалент Морзе для цифр 0-9:
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
Приклади:
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)
---.. ....-
Застосовуються стандартні правила щодо форматів вводу-виводу тощо. Прийнято декілька пробілів та один новий рядок. Ви не можете розділити число на кілька рядків. Ви не можете використовувати eval
або еквівалент.
Це код гольфу, тому найкоротший код у байтах виграє.
J_.:s*R5"-.-"5
для побудови чисел. Напевно, навіть скорочують при використанні упакованих рядків.