class Solution:
SYMBOL_VALUES = {
'I':1,
'V':5,
'X':10,
'L':50,
'C':100,
'D':500,
'M':1000,
}
def romanToInt(self, s: str) -> int:
#先定义一个变量赋值为0用来之后接收最终算出的值
ans = 0
#计算目标字符串的长度
n = len(s)
#enumerate方法是将可迭代对象解包,返回元组
for i,ch in enumerate(s):
#根据类变量中定义好的值来获取ch对应的value值
value = Solution.SYMBOL_VALUES[ch]
#判断当i小于n-1并且字符串中第i+1个元素大于这个值时,这个值就为负数,反之则是正数,并依次相加
if i < n-1 and value < Solution.SYMBOL_VALUES[s[i+1]]:
ans-=value
else:
ans += value
#返回字符串转化后的数值
return ans
力扣算法题:罗马数转整数
于 2022-04-23 15:44:58 首次发布