def roman_to_integer(s):
# 创建一个字典,将罗马数字字符映射到整数值
roman_to_int = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
total = 0
prev_value = 0 # 用于跟踪前一个字符的值
# 从右到左迭代罗马数字字符
for char in reversed(s):
current_value = roman_to_int[char]
# 根据规则,如果前一个字符的值比当前字符的值小,则需要减去前一个字符的值
if current_value < prev_value:
total -= current_value
else:
total += current_value
prev_value = current_value
return total
# 测试
roman_numeral = "MCMXCIV" # 示例输入
result = roman_to_integer(roman_numeral)
print(result) # 输出结果