Leetcode 13.罗马数字转整数 Python

class Solution:
    def romanToInt(self, s):
        replace=[["IV","IIII"],["IX","VIIII"],
        ["XL","XXXX"],["XC","LXXXX"],["CD","CCCC"],["CM","DCCCC"]]
        for rep in replace:
            s=s.replace(rep[0],rep[1])
        m=s.count("M")
        d=s.count("D")
        c=s.count("C")
        l=s.count("L")
        x=s.count("X")
        v=s.count("V")
        i=s.count("I")
        result=m*1000+d*500+c*100+l*50+x*10+v*5+i*1
        return result

这个……也蛮简单的

就是上一篇文章

Leetcode 12.整数转罗马数字 Python_leleprogrammer的博客-CSDN博客class Solution: def intToRoman(self, num): m=num//1000 y=num%1000 d=y//500 y=y%500 c=y//100 y=y%100 l=y//50 y=y%50 x=y//10 y=y%10 v=y//5 i=y%5 resu.https://blog.csdn.net/leleprogrammer/article/details/121719991?spm=1001.2014.3001.5501的逆推而已

解题思路:

先把几种特殊情况转变为不正确的书写形式(方便计算)

获取M、D、C、L、X、V、I七种字母的个数

把总值加起来

最后返回即可


排名也是挺靠前的

 


关注我,在Leetcode专栏查看更多题目的解题思路吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值