罗马数字转整数
1,列出字典
2,对特殊情况处理
3,用异常处理防止遍历过度
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
x = 0
i = 0
t = len(s)
dic_lm = {"I":1,"V":5,"X":10,"L":50,"C":100,"D":500,"M":1000,"IV":4,"IX":9,"XL":40,"XC":90,"CD":400,"CM":900}
while i < len(s):
try:
if dic_lm[s[i]] < dic_lm[s[i+1]]:
x += dic_lm[s[i+1]] - dic_lm[s[i]]
i += 2
else:
x += dic_lm[s[i]]
i += 1
except IndexError:
x += dic_lm[s[i]]
i += 1
return x