美文网首页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