美文网首页
leetcode12. 整数转罗马数字 python实现

leetcode12. 整数转罗马数字 python实现

作者: vvblack4 | 来源:发表于2020-02-19 15:05 被阅读0次

    题目:

    leetcode12题目描述

    解法:

    1. 构建罗马数字与整数对应的字典,包含所有的情况(6种特殊规则:4、9、40、90、400、900)。注意:字典一定要从大到小排列,不然会出现4=IIII 而不是4=IV。
    2. 遍历字典,我们用待转换整数除以字典的key,并向下取整,注意是//,得到对应位数的值,进而得到该位对应的罗马数字。重新赋值待转换整数,新待转换整数=待转换整数-key * 整除得到的值。比如258,当遍历到key为100时,整数值为2,我们循环展示两个100对应的value。下一次循环时,待转换整数变成258-100*2=58。反复上述过程。

    具体代码如下:

    class Solution:
        def intToRoman(self, num: int) -> str:
            res = ''
            dict = {1000:"M",900:"CM",500:"D",400:"CD",
                    100:"C", 90:"XC", 50:"L", 40:"XL",
                    10:"X",  9:"IX",  5:"V",  4:"IV",
                    1:"I"}
            for key,value in dict.items():
                quo = num//key     # 整除得到商
                if quo != 0:
                    res += quo* value
                    num = num - quo*key
    
            return res
    

    相关文章

      网友评论

          本文标题:leetcode12. 整数转罗马数字 python实现

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