LeetCode:罗马数字转整数(Python版本)

class Solution(object):
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        doAnd = 0
        hashmap = {'I': 1, 'IV': 4, 'IX': 9, 'XL': 40, 'XC': 90, 'CD': 400, 'CM': 900, 'V': 5,
                   'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
        ls = list(s)

        while ls:
            if ''.join(ls[:2]) in hashmap.keys():  # 先检查有没有特殊情况,join语句是拼接字符串
                doAnd += hashmap[''.join(ls[:2])]
                del ls[:2]
            else:
                if ''.join(ls[:1]) in hashmap.keys():  # 没有特殊情况,一个一个加
                    doAnd += hashmap[''.join(ls[:1])]
                    del ls[:1]

        return doAnd



c=Solution()

a="MCMXCIV"
c1=c.romanToInt(a)


print('c1=',c1)

原文

posted @ 2022-08-19 22:49  luoganttcc  阅读(24)  评论(0)    收藏  举报