Mors alfabesinde matematiksel bir ifadeyi girdi olarak alan ve çözümü Mors kodunda döndüren bir program veya işlev yazın.
Geçerli işlemler artı: +
ve eksi: _
(alt çizgi). Yalnızca negatif olmayan bir tamsayı girişi alacağınızı ve sonucun negatif olamayacağını varsayabilirsiniz.
İfade en az iki terim ve en fazla on terim içerecektir. İki komşu operatör olmaz, yani .----+_-....
parantez olmaz.
Rakamlar tek boşluklarla ayrılmıştır. Operatörlerin sayılardan her bir tarafta tek bir boşlukla ayrılmasını seçebilirsiniz (örneklere bakın).
0-9 rakamları için Mors eşdeğeri:
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
Örnekler:
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)
---.. ....-
G / Ç formatları vb. İle ilgili standart kurallar geçerlidir. Birkaç sondaki boşluk ve tek bir yeni satır kabul edilir. Numarayı birkaç satıra bölemezsiniz. Kullanamazsınız eval
ya da eşdeğeri.
Bu kod golf, yani bayttaki en kısa kod kazanır.
J_.:s*R5"-.-"5
sayıları oluşturmak için. Paketlenmiş dizeleri kullanırken muhtemelen daha da kısalır.