LeetCode 13.罗马数字转整数(简单)

该博客介绍了一个Python实现的罗马数字到整数的转换算法。通过替换特定的罗马数字组合,然后累加对应的整数值,实现了从罗马数字字符串到整数的转化。涉及到的罗马数字包括I到M,以及它们的组合如IV、IX、XL等。

python

思路是借鉴的评论,真的妙啊

I : 1 -> a

II : 2 -> b

III : 3 -> c

Iv:4 -> d

V:5 -> e

VI:6 -> f

VII:7 -> g

VIII:8 -> h

Ix:9 -> i

X:10 -> j

XL:40 -> k

L:50 -> l

XC:90 -> m

C:100 -> n

CD:400 -> o

D:500 -> p

CM:900 -> q

M:1000 -> r

class Solution:
    def romanToInt(self, s: str) -> int:
        s = s.replace('IV','d')
        s = s.replace('IX','i')
        s = s.replace('XL','k')
        s = s.replace('XC','m')
        s = s.replace('CD','o')
        s = s.replace('CM','q')

        print(s)

        
        num_sum = 0
        for i in range(0,len(s)):
            num_sum = num_sum + self.string_to_num(s[i])
        
        return num_sum



    def string_to_num(self,c:chr) ->int:
        '''
        d.get('c', 5)
        若是字典d中包含键"c",则返回键"c"的键值,若不包含键"c",则返回5。
        '''
        num = {
            "I":1,
            "d":4,
            "V":5,
            "i":9,
            "X":10,
            "k":40,
            "L":50,
            "m":90,
            "C":100,
            "o":400,
            "D":500,
            "q":900,
            "M":1000
        }
        return num.get(c,None)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值