罗马数字转整数

罗马数字转整数

九月 02, 2021

罗马数字转整数

这个题首先先找规律 对于罗马数字的规律来说 那便是

从左往右开始时 若对于第二个罗马数字 比第一个罗马数字大 那么第二个罗马数字便要减去第一个罗马数字 反之 则要加起来

那不如反转过来

从右往左遍历 若遇到比自己小的数便减去它 若遇到比自己大的数便加上它

那么

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dic = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
class Solution(object):
def romanToInt(self,s):
global dic
st = list(s)
st.reverse()
result = (dic[st[0]])
for i in range(len(s)):
if ((i + 1) >= len(s)):
break
if (dic[st[i]]) > (dic[st[i + 1]]):
result = result - (dic[st[i + 1]])
else:
result = result + (dic[st[i + 1]])
return result