रोमन अंक के रूप में अक्षरों के अनुक्रम की व्याख्या करने के लिए एक एल्गोरिथ्म लिखें। (नीचे रोमन अंक नियम देखें)
प्रत्येक अलग अक्षर में एक मिलान अरबी दशमलव मान होता है, अधिकतम नहीं। लेकिन आपके पास पहले से कुंजी नहीं है, इसलिए {A=10, I=1, X=5, ... Z=1000000}
आपकी व्याख्या से तय किया जाता है।
चुनौती
- इनपुट के माध्यम से
STDIN
या समतुल्य पढ़ें और इसके माध्यम सेSTDOUT
या समकक्ष आउटपुट लिखें - मान्य इनपुट अपरकेस और लोअरकेस अक्षरों के मेल यानी मेल खाते हैं
\[a-zA-Z]+\
- इनपुट को यह देखने के लिए मान्य किया जाना चाहिए कि क्या पत्र अनुक्रम को मान्य रोमन अंक के रूप में व्याख्या किया जा सकता है
- यदि इनपुट सत्यापन पास करता है, तो मान्य आउटपुट सबसे कम अरबी दशमलव व्याख्या होनी चाहिए और उपयोग की जाने वाली कुंजी
Aa
की व्याख्या की जाती4 {a=5, A=1}
है या नहीं6 {A=5, a=1}
9 {a=10, a=1}
रोमन अंक नियम
केवल दस की शक्तियों का प्रतिनिधित्व करने वाले अक्षरों को दोहराया जा सकता है, क्रमिक रूप से अधिकतम तीन गुना और कुल उदाहरण में चार गुना
II
III
XXXIX
यदि एक या एक से अधिक अक्षर एक से अधिक मूल्य के अक्षर के बाद रखे जाते हैं, तो उस राशि को जोड़ दें
AAaa => 22 {A=10, a=1} (20 + 2 = 22) bbAAaa => 222 {b=100, A=10, a=1} (200 + 20 + 2 = 222)
यदि कोई अक्षर अधिक मूल्य के दूसरे अक्षर से पहले रखा जाता है, तो उस राशि को घटाएं
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)
रोमन अंकों से राशि घटाने के लिए कई नियम लागू होते हैं:
- केवल दस की शक्ति घटाना अर्थात
1, 10, 100...
नहीं5, 50, 500...
- कोई दोहरा घटाव इसलिए नहीं
18
लिखा जाताXVIII
हैIIXX (10 + 10 - 1 - 1)
- एक से एक संख्या को घटाएं नहीं जो दस गुना से अधिक हो।
आप घटा सकते1
से5
या10
लेकिन नहीं से50, 100, 500...
- केवल दस की शक्ति घटाना अर्थात
उदाहरण
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}
Aa
1 (A = 1, a = 2) का मान है।