কম্পিউটার টিউটোরিয়াল

পাইথনে রোমান টু ইন্টিজার (Roman to Integer)

রোমান সংখ্যা (রোমান লিটারেল) দেওয়া থাকে। এটিকে ইন্টিজারে রূপান্তর করতে হবে। রোমান সিম্বল: 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।

সমাধানের পদ্ধতি

  1. রোমান সিম্বল এবং স্পেশাল কেসের একটি ডিকশনারি বানান।
  2. স্ট্রিং স্ক্যান করুন: যদি দুই ক্যারেক্টার মিলে 스페শাল কেসে পাওয়া যায়, তার ভ্যালু যোগ করুন এবং ২ ধাপ এগিয়ে যান।
  3. অন্যথায় একক ক্যারেক্টারের ভ্যালু যোগ করে ১ ধাপ এগিয়ে যান।

উদাহরণ কোড

class Solution(object):
    def romanToInt(self, s):
        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. পাইথন ল্যাঙ্গুয়েজে এক্সপ্লিসিট টাইপ কাস্টিং (Explicit Type Casting)

  2. পাইথনে bin() ফাংশন

  3. Python-এ ফ্লোটকে ইন্টিজার রূপান্তর করা

  4. Python-এ ইন্টিজারকে ক্যারেক্টার রূপান্তর করা