রোমান সংখ্যা (রোমান লিটারেল) দেওয়া থাকে। এটিকে ইন্টিজারে রূপান্তর করতে হবে। রোমান সিম্বল: 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।
সমাধানের পদ্ধতি
- রোমান সিম্বল এবং স্পেশাল কেসের একটি ডিকশনারি বানান।
- স্ট্রিং স্ক্যান করুন: যদি দুই ক্যারেক্টার মিলে 스페শাল কেসে পাওয়া যায়, তার ভ্যালু যোগ করুন এবং ২ ধাপ এগিয়ে যান।
- অন্যথায় একক ক্যারেক্টারের ভ্যালু যোগ করে ১ ধাপ এগিয়ে যান।
উদাহরণ কোড
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