美文网首页leetcode
【每日一题7.13】leetcode13:罗马数字转整数

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

作者: 张张大白 | 来源:发表于2020-07-13 21:34 被阅读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
    

    个人记录:

    • 字典,列表,字符串取某一位的值都是用[ ]
    • 字符串和数字有关联,要想到字典,别想if的逐个取值,太傻
    • 选择的时候,要考虑“==”的存在,否则很容易错

    相关文章

      网友评论

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

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