1)倒序计算,如果结果大于标准数四倍,则超出,需要减去。空间复杂度大
class Solution: def romanToInt(self, s: str) -> int: roman_num = {‘I‘:1, ‘V‘:5, ‘X‘:10, ‘L‘:50, ‘C‘:100, ‘D‘:500, ‘M‘:1000} result = 0 for i in range(len(s)-1,-1,-1): if result > 4*roman_num[s[i]]: result -= roman_num[s[i]] else: result += roman_num[s[i]] return result
2)构造完整数表,逐个寻找。如果两个连续罗马数字存在于表内,则一同取出。i+=2
原文:https://www.cnblogs.com/cbachen/p/14871045.html