Python, LeetCode, 13. 罗马数字转整数

class Solution:
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        s_list = list(s)
        if len(s_list) == 0:
            return 0
        res = 0
        while len(s_list) != 0:
            tmp = s_list.pop(0)
            if tmp == 'I':
                if len(s_list) == 0:
                    res += 1
                    break
                if s_list[0] == 'V':
                    s_list.pop(0)
                    res += 4
                elif s_list[0] == 'X':
                    s_list.pop(0)
                    res += 9
                else:
                    res += 1
            elif tmp == 'X':
                if len(s_list) == 0:
                    res += 10
                    break
                if s_list[0] == 'L':
                    s_list.pop(0)
                    res += 40
                elif s_list[0] == 'C':
                    s_list.pop(0)
                    res += 90
                else:
                    res += 10
            elif tmp == 'C':
                if len(s_list) == 0:
                    res += 100
                    break
                if s_list[0] == 'D':
                    s_list.pop(0)
                    res += 400
                elif s_list[0] == 'M':
                    s_list.pop(0)
                    res += 900
                else:
                    res += 100
            elif tmp == 'V':
                res += 5
            elif tmp == 'L':
                res += 50
            elif tmp == 'D':
                res += 500
            elif tmp == 'M':
                res += 1000
        return res

猜你喜欢

转载自blog.csdn.net/u010342040/article/details/80560085