/
roman_to_integer.py
51 lines (37 loc) · 1.24 KB
/
roman_to_integer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class Solution:
def romanToInt(self, s :str ) -> int:
result = 0
index = 0
dictSpecialRoman = {}
dictSpecialRoman["IV"] = 4
dictSpecialRoman["IX"] = 9
dictSpecialRoman["XL"] = 40
dictSpecialRoman["XC"] = 90
dictSpecialRoman["CD"] = 400
dictSpecialRoman["CM"] = 900
dictRoman = {}
dictRoman["I"] = 1
dictRoman["V"] = 5
dictRoman["X"] = 10
dictRoman["L"] = 50
dictRoman["C"] = 100
dictRoman["D"] = 500
dictRoman["M"] = 1000
try:
while index < len(s) :
specialRoman = s[index] + s[index+1]
if specialRoman in dictSpecialRoman:
result = result + dictSpecialRoman[specialRoman]
index = index + 2
else:
result = result + dictRoman[s[index]]
index = index + 1
except IndexError:
result = result + dictRoman[s[index]]
finally:
return result
if __name__ == "__main__":
o = Solution()
strRoman = "MCMXCIV"
value = o.romanToInt(strRoman)
print(value)