罗马数字到整数转换

# -*-coding:utf-8-*-
__author__ = 'LL_YING'
# 罗马数字计数方法:
# 1、相同的数字连写表示这些数字相加的得到的数,比如III=3# 2、小的数字在大的数字的右边,表示的数字等于这些数字相加得到的数,比如VII=8XII=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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值