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

题目:

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容