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

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


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

अंकमान
I1
V5
X10
L50
C100
D500
M1000

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

  • I का उपयोग V(5) और X(10) से पहले करके इसे क्रमशः 4 और 9 बनाया जा सकता है
  • X का उपयोग L(50) और C(100) से पहले करके इसे क्रमशः 40 और 90 बनाया जा सकता है
  • C का उपयोग D(500) और M(1000) से पहले करके इन्हें क्रमशः 400 और 900 बनाया जा सकता है।

इस मामले में, हम एक रोमन से पूर्णांक कनवर्टर बनाएंगे, जो 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:
                num+=roman[s[i]]
                i+=1
        return num

ob1 = Solution()
print(ob1.romanToInt("III"))
print(ob1.romanToInt("CDXLIII"))

इनपुट

"III" "CDXLIII"

आउटपुट

3 443

  1. - पायथन में bin() फ़ंक्शन

    bin() फ़ंक्शन दशमलव को बाइनरी में बदलता है। आप परिवर्तित किए जाने वाले पैरामीटर के रूप में धनात्मक या ऋणात्मक पूर्णांक का उपयोग कर सकते हैं। सिंटैक्स नीचे फ़ंक्शन का सिंटैक्स दिया गया है। bin(n) पैरामीटर्स: परिवर्तित करने के लिए एक पूर्णांक वापसी मान: एक पूर्णांक या int ऑब्जेक्ट का बाइनरी स्ट्रिंग

  1. - Python में float को integer में कैसे बदलें?

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

  1. - Python में पूर्णांक को वर्ण (Character) में कैसे बदलें?

    Python में chr() फ़ंक्शन का उपयोग करके पूर्णांक को वर्ण में बदलना Python का बिल्ट-इन फ़ंक्शन chr() 0 से 0x10ffff के बीच पूर्णांक के बराबर यूनिकोड वर्ण लौटाता है। >>> chr(100) d >>> chr(300) Ĭ >>> chr(65) A