leetcode 12. 整数转罗马数字


解题思路

1.首先,将值与对应字符用字典来表示,然后将符号对应的值按有序顺序存储至列表中sums

2.将要转换的整数转换成列表形式,遍历列表,每次遍历:

  • 将值取出来算出对应所在位置的实际值 如 32 对应列表 3,2 则 3实际值应为 3 x 101 = 30 2
    实际值为 2 x 10
    0
  • 计算出实际值后,将对应的值替换成对应的罗马字符,此时从列表末尾开始遍历sums,找到列表比实际值小的第一个值,这个值所代表的键值对即为实际值要替换罗马数字的一部分,依次查找至实际值=0,则代表已找到此实际值所表示的罗马数字

代码

python 复制代码
class Solution(object):
    def intToRoman(self, num):
        """
        :type num: int
        :rtype: str
        """
        dict1 = {
            "1":"I",
            "4":"IV",
            "5":"V",
            "9":"IX",
            "10":"X",
            "40":"XL",
            "50":"L",
            "90":"XC",
            "100":"C",
            "400":"CD",
            "500":"D",
            "900":"CM",
            "1000":"M"
        }
        sums = [1,4,5,9,10,40,50,90,100,400,500,900,1000]
        s = ''
        t = [int(i) for i in list(str(num))]
        count = len(t)
        for i in range(count):
            nums = t[i]*pow(10,count-i-1)
            while nums>0:
                for j in range(len(sums)):
                    if sums[len(sums)-1-j]<=nums:
                        s=s+dict1[str(sums[len(sums)-1-j])]
                        nums-=sums[len(sums)-1-j]
                        break
        return s
相关推荐
esop轻Mes看板亮灯分拣ESD静电安5 分钟前
产线“最后一米”的破局密码:ESOP与MES的区别与深度协同
算法
打工仔折腾 AI9 分钟前
Spring AI + Qwen 周报生成实战:从原始日志到人工确认卡
人工智能·后端·python·spring·elasticsearch·ai agent 实战
陈天伟教授13 分钟前
《数据处理和标注技术》课程能力图谱
人工智能·算法
LMT_Lanmantech16 分钟前
HyperWorks许可:almutil显示Unit满了,数据到底准不准?
运维·服务器·算法
禁默27 分钟前
论文解读与思考:基于场所地图的标识感知机器人探索方法及工程参考的价值
人工智能·深度学习·算法·机器人
维克兜率天27 分钟前
【维克】统计套利建模:从因子到信号的完整流程
android·开发语言·python·算法·kotlin
全栈练习生30 分钟前
RAG 准确率提升体系化方案
python·ai
Zentceh34 分钟前
PixelClean 这类 AI 降噪算法是怎么工作的?从 RAW 域到 GAN 色彩重建的技术拆解
图像处理·人工智能·科技·算法·计算机视觉·车载系统·智能硬件
用户76241175670535 分钟前
第十一章 GUI界面编程
python
天天被压力38 分钟前
【Python量化实战宝典 #03】指数与板块行情接口全拆解:大盘·行业·概念一键取(Python 可跑)
java·人工智能·python