मान लीजिए हमारे पास रोमन अंक है; हमें इसे संख्या में बदलना होगा। जैसा कि हम जानते हैं कि रोमन अंक को बाएं से दाएं सबसे बड़े से कम से कम प्रतीकों द्वारा दर्शाया जाता है, केवल एक अपवाद तब होता है जब एक प्रतीक से कम का प्रतिनिधित्व करता है। कुछ रोमन अंकों के प्रतीक अर्थ इस प्रकार हैं:
-
'एम':1000
-
'डी':500
-
'सी':100
-
'एल':50
-
'एक्स':10
-
'वी':5
-
'मैं':1
इसलिए, यदि इनपुट अंक ="एमसीएलएक्सवीआई" जैसा है, तो आउटपुट 1166 होगा, क्योंकि एम =1000, सी =100, कुल 1100 है, फिर एल =50, एक्स =10, VI =6 तो कुल 1166 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
ऊपर बताए अनुसार अंक सूची लें
-
उत्तर :=0
-
n :=अंक का आकार
-
प्रत्येक अनुक्रमणिका idx और मान c अंक के लिए, करें
-
अगर idx
-
उत्तर:=उत्तर - डी [सी]
-
-
अन्यथा,
-
उत्तर:=उत्तर + डी [सी]
-
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, numeral): d = {"M": 1000, "D": 500, "C": 100, "L": 50, "X": 10, "V": 5, "I": 1} ans = 0 n = len(numeral) for (idx, c) in enumerate(numeral): if idx < n - 1 and d[c] < d[numeral[idx + 1]]: ans -= d[c] else: ans += d[c] return ans ob = Solution() numeral = "MCLXVI" print(ob.solve(numeral))
इनपुट
"MCLXVI"
आउटपुट
1166