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

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的逐个取值,太傻
  • 选择的时候,要考虑“==”的存在,否则很容易错
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。