leetcode13:罗马数字转整数


class Solution:
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        romanToInt = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}  # 定义一个字典存放罗马数字和整数
        total = 0
        for index, roman in enumerate(s):
            if index < len(s)-1:
                if (roman+s[index+1] == 'IV') | (roman+s[index+1] == 'IX') | (roman+s[index+1] == 'XL') | (roman+s[index+1] == 'XC') | (roman+s[index+1] == 'CD') | (roman+s[index+1] == 'CM'):  # 判断是否存在那6种情况
                    total = total -romanToInt[roman]  # 存在的话减
                else:
                    total = total + romanToInt[roman]  # 不存在的话加
            else:
                total = total + romanToInt[roman]  # 加最后一个数
        return total




print(Solution.romanToInt(Solution,"MMMCDXC"))

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/82560325