Python:罗马数字转整数

解题

=====================================================================

1. 第一种方法


第一种方法,直接将字符串中的罗马数字转换为数字,用空格分隔。并以空格作为分隔符,将字符串分割为列表,然后把列表的每一项转为整数后求和:

class Solution:

def romanToInt(self, s: str) -> int:

#直接将字符串中的罗马数字转换为数字,用空格分隔

s=s.replace(‘IV’,'4 ')

s=s.replace(‘IX’,'9 ')

s=s.replace(‘XL’,'40 ')

s=s.replace(‘XC’,'90 ')

s=s.replace(‘CD’,'400 ')

s=s.replace(‘CM’,'900 ')

s=s.replace(‘I’,'1 ')

s=s.replace(‘V’,'5 ')

s=s.replace(‘X’,'10 ')

s=s.replace(‘L’,'50 ')

s=s.replace(‘C’,'100 ')

s=s.replace(‘D’,'500 ')

s=s.replace(‘M’,'1000 ')

#以空格作为分隔符,将字符串分割为列表

l = s.split(’ ')[:-1]

#把列表的每一项转为整数后求和

l = list(map(int, l))

return sum(l)

当然这种方法费时又费内存,还很不简洁,那么就看到下一种方法:

2. 第二种方法


首先在类的外部创建一个字典,罗马数字对应的整数:

d = {‘I’:1, ‘V’:5,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值