[Leetcode]Roman to Integer

9 篇文章 0 订阅

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

把给定的罗马数字转成阿拉伯数字~先科普一下,罗马数字对于每个位有三个单位:1,5,10,对于1到9,表示方法如下:1-3:用1表示;4:1:5左边加一个1;5: 直接用5表示; 6-8: 5右边加相应的1;9: 10左边加一个1~所以,右边比左边大(pre > cur)就减对应值,否则就加对应值

class Solution:
    # @return an integer
    def romanToInt(self, s):
        roman_dict = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
        res = pre = 0
        for c in reversed(s):
            cur = roman_dict[c]
            if cur >= pre:
                res += cur
            else:
                res -= cur
            pre = cur
        return res


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值