题目:
思路:
首先建立字典,把对应的罗马数字与整数写好,之后遍历字符串s,并判断第一个字符的数值与第二个字符的大小,如果小就减去,大就加上,这样就能解决类似于IV这样的情况了。
然后是遍历字符串的时候,是从0到len(s)-1,因为每次比大小都是和后一位比,如果遍历到最后一位,就会发生越界的情况。因此最后一位的数值直接加上就好了。
代码如下:
class Solution:
def romanToInt(self, s: str) -> int:
example = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
}
res = 0
# 这里从0到len(s)-1是为了防止越界
for i in range(len(s)-1):
# 小的在大的左边就减去
if example[s[i]] < example[s[i+1]]:
res -= example[s[i]]
# 否则就加上
else:
res += example[s[i]]
# 最后一个数直接加上
res += example[s[-1]]
return res