美文网首页
Q13 Roman to Integer

Q13 Roman to Integer

作者: 牛奶芝麻 | 来源:发表于2018-02-28 16:30 被阅读3次

    Given a roman numeral, convert it to an integer.

    Input is guaranteed to be within the range from 1 to 3999.

    解题思路:

    将罗马字符保存到map中,观察罗马字符的规律,编写代码。

    Python实现:
    class Solution:
        def romanToInt(self, s):
            """
            :type s: str
            :rtype: int
            """
            map = { 'I' : 1, 'V' : 5, 'X' : 10, 'L' : 50, 'C' : 100, 'D' : 500, 'M' : 1000 }
            ans = 0
            if len(s) == 1:
                return map.get(s[0])
            for i in range(len(s) - 1):
                ch = map.get(s[i])
                if (ch >= map.get(s[i+1])):
                    ans += ch
                else:
                    ans -= ch
            ans += map.get(s[-1])  # 加上最后一个数字
            return ans
    
    a = 'DCXXI'
    b = Solution()
    print(b.romanToInt(a))  # 621
    

    相关文章

      网友评论

          本文标题:Q13 Roman to Integer

          本文链接:https://www.haomeiwen.com/subject/zjnmzxtx.html