Roman to Integer 罗马数字转阿拉伯数字

Easy, Msc

将罗马数字转化为阿拉伯数字。

基本字符:
  I、V、X、L、C、D、M
  相应的阿拉伯数字表示为:
  1.5、10、50、100、500、1000
  (1)相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3;
  (2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12;
  (3)小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:Ⅳ= 4;Ⅸ= 9;

从右往左转换后加到响应值,如果前值小于后值,需要将该值从已有响应值减去。

class Solution(object):
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        d = {'M':1000, 'D':500, 'C':100, 'L':50, 'X':10, 'V':5, 'I':1}
        re = 0
        p = 'I'
        for c in s[::-1]:
            if d[c] < d[p]:
                re -= d[c]
                p = c
            else:
                re += d[c]
                p = c
        return re
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容