美文网首页
Roman to Integer 罗马数字转阿拉伯数字

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

作者: 穿越那片海 | 来源:发表于2017-03-05 16:26 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:Roman to Integer 罗马数字转阿拉伯数字

          本文链接:https://www.haomeiwen.com/subject/fflegttx.html