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
相关推荐
山海云端有限公司2 分钟前
企业工商信息查询API实战:从认证到数据解析全流程
python·api·数据解析·企业信息查询·聚合api·第三方集成
bu_shuo4 分钟前
计算机二级学习-查找和排序
学习·算法·排序算法
大圣编程7 分钟前
python break语句
开发语言·前端·python
迷路爸爸1807 分钟前
Python collections 入门+实战
windows·python·c#·collections·dict
AI-好学者16 分钟前
MCP企业运用全面知识点-基础篇
服务器·开发语言·网络·人工智能·python·架构
Sam092724 分钟前
【AI 算法精讲 13】朴素贝叶斯:文本分类的基石
人工智能·python·算法·ai
SilentSamsara28 分钟前
模型可解释性业务化:SHAP/LIME 的业务汇报与合规审查
人工智能·算法·机器学习·自动化
ai生成式引擎优化技术28 分钟前
WSaiOS:面向认知资产与工程化认知流程的智能操作系统架构
python·架构·django·virtualenv·pygame
STLearner30 分钟前
ICML 2026 | 时间序列(Time Series)论文总结【基础模型,生成,分类,异常检测,插补,表示学习和分析等】
论文阅读·人工智能·python·深度学习·神经网络·机器学习·数据挖掘
byte轻骑兵34 分钟前
【LE Audio】CSIP精讲[5]: 蓝牙协同设备组的安全防护体系与实战规范
算法·安全·音频·le audio·低功耗音频