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的逐个取值,太傻
- 选择的时候,要考虑“==”的存在,否则很容易错