Posted on 2022-11-03 01:56
Uriel 阅读(47)
评论(0) 编辑 收藏 引用 所属分类:
闲来无事重切Leet Code 、
大水题
罗马数字转阿拉伯数字,从左往右一位一位处理,如果当前遇到的罗马字比前一位处理的要小,说明出现了4和9的情况,要减去两倍的刚才叠加上的数
1 #13
2 #Runtime: 52 ms
3 #Memory Usage: 13.5 MB
4
5 class Solution(object):
6 def romanToInt(self, s):
7 """
8 :type s: str
9 :rtype: int
10 """
11 num = 0
12 pre_val = 1000
13 roman_dict = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
14 for i in s:
15 num = num + roman_dict[i]
16 if pre_val < roman_dict[i]:
17 num = num - 2 * pre_val
18 pre_val = roman_dict[i]
19 return num