【Leetcode】13. 罗马数字转整数

本文介绍了如何用Python解决LeetCode上的罗马数字转整数问题。通过创建罗马数字字典并遍历字符串,计算每个罗马数字对应的值,最终得到转换后的整数结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

✨博文作者 wangzirui32
💖 喜欢的可以 点赞 收藏 关注哦~~
👉本文首发于优快云,未经许可禁止转载

1. 题目描述

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/roman-to-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题思路

我们可以创建一个字典,将每单个罗马数字与阿拉伯数字作为键值对,构成罗马数字表,然后使用for循环键值对(kv),检测字符串s中存在几个k, 有一个k就有一个v,可以使用乘法计算,然后去除字符串中所有k,然后,进入下一次循环,最后返回结果。

3. 代码实现

Code:

class Solution:
    def romanToInt(self, s: str) -> int:
    	"""罗马数字转整数"""
    	"""注意:这里IV,IX等特殊的罗马数字在字典的前面,这是为了避免转换错误。"""
        roman_table = {
            "IV": 4,
            "IX": 9,
            "XL": 40,
            "XC": 90,
            "CD": 400,
            "CM": 900,
            "I": 1,
            "V": 5,
            "X": 10,
            "L": 50,
            "C": 100,
            "D": 500,
            "M": 1000,
        }
        result = 0  # 结果
        for k, v in roman_table.items():  # 遍历字典
            result += s.count(k) * v  # 查询k的数量 * k所代表的值(v)
            s = s.replace(k, "")    # 替换k 避免重复计算

        return result

4. 最终结果

结果

🎉🎉🎉 好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值