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
相关推荐
生信大杂烩4 分钟前
Xenium H&E空间原位可视化——细胞轮廓、基因表达与转录本可视化
python·算法·数据分析
东莞市云毅网络有限公司13 分钟前
用标准库做网页正文抽取:从 HTML 到结构化字段的轻量实现
python·sqlite·自动化运维·geo·数据监测
linx29516 分钟前
第七章 · 标准库容器、算法与 ranges
c语言·开发语言·数据结构·c++·算法
高级程序源18 分钟前
django校企合作实习基地管理系统82506-计算机课程设计、毕业设计
vue.js·后端·python·mysql·django·课程设计·pygame
东方芷兰19 分钟前
Agent 技术摘要 02 —— 区块链、比特币、挖矿、ETF、比特币疯涨事件、以太坊、以太币、显卡荒事件
人工智能·笔记·python
钓鱼的肝20 分钟前
csp-j-s总结(4)
c++·经验分享·笔记·算法
贝猫说python30 分钟前
阿里云部署qwen 大模型从0-1,第2步:阿里云平台创建ubuntu实例
python
峥嵘life30 分钟前
2026华为AI码道 CodeArts 使用分享:Windows端 + 服务器CLI 实战总结
android·大数据·开发语言·python
贝猫说python31 分钟前
阿里云部署qwen 大模型从0-1,第3步:阿里云服务器上部署大模型
python
橘子汽水16834 分钟前
Leetcode 763,45 划分字母区间 跳跃游戏II
数据结构·算法·leetcode