leetcode-python-罗马数字转整数

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

posted @ 2021-06-10 14:50  泊鸽  阅读(81)  评论(0)    收藏  举报