saberwc

源代码如下:
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
# 使用整数转罗马数的两个列表
num_tuple = [1000, 500, 100, 50, 10, 5, 1]
roman_tuple = [\'M\', \'D\', \'C\', \'L\', \'X\', \'V\', \'I\']
# 使用dict和zip方法是其转为字典 格式为:{\'M\': 1000, \'X\': 10, \'L\': 50, \'D\': 500, \'C\': 100, \'V\': 5, \'I\': 1}
merge_dic = dict(zip(roman_tuple, num_tuple))
# 记录最后的结果值
num = 0
# 因为类似IV这样的需要比较两者之间的值,所以只取到len(s)-1,
for i in range(len(s)-1):
# 判断第i个数的值是否小于第i+1个数的值,是的话减去第i个数的值
if merge_dic[s[i]] < merge_dic[s[i+1]]:
num -= merge_dic[s[i]]
# 不是的话加上第i个数的值
else:
num += merge_dic[s[i]]
# 这是加最后一个数的值
num += merge_dic[s[-1]]
return num

if name == \'main\':
s = Solution()
print(s.romanToInt("IV"))

分类:

技术点:

相关文章: