=====================================================================
第一种方法,直接将字符串中的罗马数字转换为数字,用空格分隔。并以空格作为分隔符,将字符串分割为列表,然后把列表的每一项转为整数后求和:
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)
当然这种方法费时又费内存,还很不简洁,那么就看到下一种方法:
首先在类的外部创建一个字典,罗马数字对应的整数:
d = {‘I’:1, ‘V’:5,