leetcode

【每日一题7.13】leetcode13:罗马数字转整数

2020-07-13  本文已影响0人  张张大白

13. 罗马数字转整数

class Solution(object):
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        n=len(s)
        Intvalue=0
        #先定义哈希表-字典存储对应关系
        Roman2Int={"I":1, "V":5,
                    "X":10, "L":50,
                    "C":100, "D":500, "M":1000}
        #搞清楚,和二进制不同,这些事加起来的关系,所以特殊情况是两个的右-左,也就是整体-左
        for index in range(n - 1):#要少遍历一位就可以全覆盖
            if Roman2Int[s[index]]<Roman2Int[s[index+1]]:
                Intvalue-=Roman2Int[s[index]]
            else:
                Intvalue+=Roman2Int[s[index]]
        Intvalue=Intvalue+Roman2Int[s[-1]]
        return Intvalue

个人记录:

上一篇 下一篇

猜你喜欢

热点阅读