13. Roman to Integer
Last updated
Last updated
Input: s = "III"
Output:
3
Explanation:
III = 3.Input: s = "LVIII"
Output:
58
Explanation:
L = 50, V= 5, III = 3.Input: s = "MCMXCIV"
Output:
1994
Explanation:
M = 1000, CM = 900, XC = 90 and IV = 4.class Solution:
def romanToInt(self, s: str) -> int:
mappings = {'I': 1,'II': 2, 'III': 3, 'IV': 4,'V': 5,'IX': 9,'X': 10,'XL': 40, 'L': 50,'XC': 90,'C': 100,'CD': 400, 'D': 500, 'CM': 900,'M': 1000}
num = 0
index = 0
while index < len(s):
if index + 1 < len(s):
if s[index: index+2] in mappings:
num += mappings[s[index: index+2]]
index = index+2
else:
num += mappings[s[index]]
index += 1
else:
num += mappings[s[index]]
index += 1
return num