leetcode 13 罗马数字转整数

# leetcode 13 罗马数字转整数

# 可能我对题目的描述有误解,在此并不多说,分享解法
# 判断后边的罗马数字和前边一个的关系, 如果前边小就对结果减去前边的值, 反之则加
# 比如 'CD' D > C
class Solution:
    def romanToInt(self, s: str) -> int:
        roma_map = {
            'I': 1, 'V': 5, 'X': 10,
            'L': 50, 'C': 100, 'D': 500,
            'M': 1000
        }

        if not s:
            return 0

        res = 0
        pre = roma_map[s[0]]

        for ch in s[1:]:
            if roma_map[ch] > pre:
                res -= pre
            else:
                res += pre
            pre = roma_map[ch]
        res += pre
        
        return res

你可能感兴趣的:(算法及数据结构)