完整代码如下:
#通常情况下,罗马数字中小的数字在大的数字的右边。 # 但也存在特例,例如 4 不写为IIII, # 而写成IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。 class Solution(object): def romanToInt(self, s): #使用字典数据结构 dic = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000} #累加器 sum = 0 for i in range(len(s)): #后一位M表示的1000大于C表示的100,则进行减法操作 if i>0 and dic[s[i]]>dic[s[i-1]]: temp=dic[s[i]]-2*dic[s[i-1]] sum=sum+temp else: sum=sum+dic[s[i]] return sum if __name__ == '__main__': sol = Solution() print("字符串III的结果为",sol.romanToInt("III")) print("字符串MCMXCIV的结果为",sol.romanToInt("MCMXCIV"))