1 """ 2 先用dict存储罗马数字对应的阿拉伯数字, 3 IV可划分为I,V,比较相邻字符的大小进行加减操作 4 """ 5 class Solution: 6 def romanToInt(self, s): 7 if s == None: #讨论边界情况 8 return 0 9 sum = 0 10 dit = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000} 11 for i in range(len(s)): 12 if i == 0: #因为下面的i-1,单独讨论i==0的情况 13 sum = dit[s[0]] 14 elif dit[s[i]] <= dit[s[i-1]]: #!!!以此为判别条件,进行加减 15 #bug 没有写 = 的情况,对于III案例测试 答案错误 16 sum += dit[s[i]] 17 else: 18 sum = sum + dit[s[i]] - 2*dit[s[i-1]] #减去之间加的,所以乘2 19 return sum
原文:https://www.cnblogs.com/yawenw/p/12266857.html