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
| class Solution: def romanToInt1(self, s: str) -> int: rm = ["I", "V", "X", "L", "C", "D", "M"] num = [1, 5, 10, 50, 100, 500, 1000] result = 0 i = 0 while i < len(s): if i != len(s) - 1 and rm.index(s[i]) < rm.index(s[i + 1]): result += num[rm.index(s[i + 1])] - num[rm.index(s[i])] i += 1 else: result += num[rm.index(s[i])] i += 1 return result
def romanToInt2(self, s: str) -> int: rm = {"I" : 1, "V" : 5, "X" : 10 , "L" : 50 , "C" : 100 , "D" : 500 ,"M" : 1000 } result = 0 for i, c in enumerate(s): if i < len(s) - 1 and rm[c] < rm[s[i + 1]]: result -= rm[c] else: result += rm[c] return result
|