Bir harf dizisini Romen rakamı olarak yorumlamak için bir algoritma yazın. (aşağıdaki romen rakam kurallarına bakın)
Her ayrı harfin eşleşen bir Arapça ondalık değeri vardır, maksimum değil. Ama önceden anahtarın yok, yani{A=10, I=1, X=5, ... Z=1000000} yorumunuza karar verilir.
Meydan okuma
- Girişi
STDINveya eşdeğeri üzerinden okuma ve çıkışıSTDOUTveya eşdeğeri üzerinden yazma - Geçerli girişler, büyük ve küçük harf kombinasyonlarıdır;
\[a-zA-Z]+\ - Harf dizisinin geçerli Romen rakamı olarak yorumlanıp yorumlanamayacağını görmek için giriş doğrulanmalıdır
- Giriş doğrulaması geçerse, geçerli çıkış düşük Arapça ondalık yorumlanması olmalı ve anahtar yani kullanılan
Aaolarak yorumlanır4 {a=5, A=1}değil6 {A=5, a=1}ya9 {a=10, a=1}
Romen Rakamıyla İlgili Kurallar
Sadece on gücü temsil eden harfler tekrarlanabilir, en fazla üç kez art arda ve toplamda dört kez örn.
IIIIIXXXIXBir veya daha fazla harf daha değerli başka bir harfin arkasına yerleştirilirse, bu miktarı ekleyin
AAaa => 22 {A=10, a=1} (20 + 2 = 22) bbAAaa => 222 {b=100, A=10, a=1} (200 + 20 + 2 = 222)Bir harf daha değerli başka bir harfin önüne yerleştirilirse, bu miktarı çıkarın
Aa => 4 {a=5, A=1} (5 – 1 = 4) AaA => 19 {A=10, a=1} (10 + 10 – 1 = 19) BbBaA => 194 {B=100, b=10, A=5, a=1} (100 + 100 - 10 + 5 - 1 = 194)Romen rakamlarından miktar çıkarmak için çeşitli kurallar geçerlidir:
- Sadece çıkarma on ie güçler
1, 10, 100...değil5, 50, 500... - Hiçbir çift çıkarma dolayısıyla
18olarak yazılırXVIIIdeğilIIXX (10 + 10 - 1 - 1) - On kat daha büyük bir sayı çıkarmayın.
Sen çıkarabilirsiniz1gelen5ya10ama değil itibaren50, 100, 500...
- Sadece çıkarma on ie güçler
Misal
Input:
Aa
BAa
CCCXLVII
MMMCDVII
ABADDF
XVVX
FAASGSH
DXCCDA
AaBbcDEf
Output:
4 {a=5, A=1}
14 {B=10, a=5, A=1}
347 {C=100, L=50, X=10, V=5, I=1}
347 {M=100, D=50, C=10, V=5, I=1}
1921 {A=1000, B=100, D=10, F=1}
'XVVX' failed Roman numeral test
7191 {F=5000, A=1000, S=100, G=10, H=1}
'DXCCDA' failed Roman numeral test
4444 {a=5000, A=1000, b=500, B=100, D=50, c=10, f=5, E=1}
Aa1 değerine sahiptir (A = 1, a = 2).