# -*-coding:utf-8-*- __author__ = 'LL_YING' # 罗马数字计数方法: # 1、相同的数字连写表示这些数字相加的得到的数,比如III=3。 # 2、小的数字在大的数字的右边,表示的数字等于这些数字相加得到的数,比如VII=8,XII=12。 # 3、小的数字(限于I,X,C)在大的数字的左边,所表示的数等于大数减小数得到的数,比如IV=4。 # 4、在一个数上面画一条横线表示增值1,000倍。 class Solution(object): def romanToInt(self, s): ''' :param s:str :return:int ''' romans = {'M':1000, 'D':500, 'C':100, 'L':50, 'X':10, 'V':5, 'I':1} prev_value = 0 running_total = 0 for i in range(len(s)-1, -1, -1): # 生成一个len(s)-1由大到小的列表 int_val = romans[s[i]] if int_val < prev_value: running_total -= int_val else: running_total += int_val prev_value = int_val return running_total print Solution().romanToInt('V')
罗马数字到整数转换
最新推荐文章于 2022-01-19 23:26:42 发布