class Solution:
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
D = {"I":1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000}
result = 0
if "CM" in s:
result += 900 * s.count("CM")
s = s.replace("CM", "")
if "CD" in s:
result += 400 * s.count("CD")
s = s.replace("CD", "")
if "XC" in s:
result += 90 * s.count("XC")
s = s.replace("XC", "")
if "XL" in s:
result += 40 * s.count("XL")
s = s.replace("XL", "")
if "IX" in s:
result += 9 * s.count("IX")
s = s.replace("IX", "")
if "IV" in s:
result += 4 * s.count("IV")
s = s.replace("IV", "")
for i in s:
result += D[i]
return result
思路 :replace特殊情况。
本文介绍了一种将罗马数字转换为整数的算法实现,通过识别并处理特殊组合(如CM、CD等),有效避免了传统逐字符解析的局限。文章详细展示了代码逻辑与流程,适用于对罗马数字转换感兴趣的开发者。
547

被折叠的 条评论
为什么被折叠?



