Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में रोमन से पूर्णांक तक


मान लीजिए कि हमारे पास रोमन अक्षर हैं; हमें उन्हें एक पूर्णांक में बदलना होगा। जैसा कि हम जानते हैं कि रोमन अंक नीचे दिए गए कुछ अलग प्रतीकों में प्रतिनिधित्व करते हैं -

अंक मान
मैं 1
V 5
X 10
L 50
C 100
D 500
M 1000

यदि हम रोमन संख्याओं को बारीकी से देखें, तो मान लीजिए कि अंक 'II' है, तो यह 2 है, दो 'I' को एक साथ जोड़ा जाता है। XII के लिए, यह 12 है, इसलिए यह वास्तव में X + II =10 + 2 =12 है। 4 के रोमन अंक IIII नहीं हैं, यह IV है। यह थोड़ा मुश्किल है।

  • I को क्रमशः 4 और 9 बनाने के लिए V(5) और X(10) से पहले इस्तेमाल किया जा सकता है

  • X कैब का इस्तेमाल L(50) और C(100) से पहले क्रमशः 40 और 90 बनाने के लिए किया जाता है

  • सी को क्रमशः 400 और 900 बनाने के लिए डी (500) और एम (1000) से पहले इस्तेमाल किया जा सकता है।

इस मामले में, हम एक रोमन से पूर्णांक कनवर्टर बनाएंगे, जो संख्याओं को 1 से 3999 में बदल सकता है।

इसे हल करने के लिए, हम कुछ संभावित अंक और उनके मान और कुछ विशेष मान जैसे 4, 9, 40, 90, 400, 900 बनाएंगे। अब दिए गए स्ट्रिंग को स्कैन करें, यदि तालिका में कुछ सबस्ट्रिंग मौजूद है, तो इसका मान लें परिणाम, फिर अगले के लिए जाँच करें, अगले मैच के लिए, यह परिणाम के साथ मूल्य जोड़ता है, अंत में संख्या बनाता है।

आइए इसे बेहतर ढंग से समझने के लिए कार्यान्वयन देखें

उदाहरण (पायथन)

class Solution(object):
   def romanToInt(self, s):
      """
      :type s: str
      :rtype: int
      """
      roman = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000,'IV':4,'IX':9,'XL':40,'XC':90,'CD':400,'CM':900}
      i = 0
      num = 0
      while i < len(s):
         if i+1<len(s) and s[i:i+2] in roman:
            num+=roman[s[i:i+2]]
            i+=2
         else:
            #print(i)
            num+=roman[s[i]]
            i+=1
      return num
ob1 = Solution()
print(ob1.romanToInt("III"))
print(ob1.romanToInt("CDXLIII"))

इनपुट

"III"
"CDXLIII"

आउटपुट

3
443

  1. पायथन में बिन ()

    बिन () फ़ंक्शन एक दशमलव को बाइनरी में परिवर्तित करता है। परिवर्तित किए जाने वाले पैरामीटर के रूप में आप धनात्मक या ऋणात्मक पूर्णांक का उपयोग कर सकते हैं। सिंटैक्स नीचे फ़ंक्शन का सिंटैक्स है। bin(n) Parameters : an integer to convert Return Value : A binary string of an integer or int object. Excep

  1. पायथन में फ्लोट को पूर्णांक में कैसे बदलें?

    पायथन में एक अंतर्निहित फ़ंक्शन int() है जो फ्लोट ऑब्जेक्ट को पूर्णांक में बदलने में मदद करता है। >>> a=10.56 >>> int(a) 10

  1. पायथन में एक पूर्णांक को एक वर्ण में कैसे परिवर्तित करें?

    पायथन का बिल्ट-इन फंक्शन chr() 0 से 0x10ffff के बीच एक पूर्णांक के समतुल्य एक यूनिकोड वर्ण देता है। >>> chr(a) 'd' >>> chr(300) 'Ĭ' >>> chr(65) 'A'