用 Python 将罗马数字转换为整数的程序?
pythonserver side programmingprogramming更新于 2026/2/16 7:40:17
假设我们有一个罗马数字;我们必须将其转换为数字。我们知道罗马数字由从左到右从大到小的符号表示,唯一的例外是当表示小于一个符号时。一些罗马数字符号含义如下:
'M': 1000
'D': 500
'C': 100
'L': 50
'X': 10
'V': 5
'I': 1
因此,如果输入为numeric = "MCLXVI",则输出将为1166,因为M = 1000,C = 100,总计为 1100,则 L = 50、X = 10、VI = 6,因此总计为 1166。
要解决这个问题,我们将遵循以下步骤:
取上述数字列表
ans := 0
n := 数字的大小
对于每个索引 idx 和值 c 数字,执行
如果 idx < n - 1 且 d[c] < d[numeral[idx + 1]],则
ans := ans - d[c]
否则,
ans := ans + d[c]
返回 ans
让我们看看以下实现以便更好地理解:
示例
class Solution:
def solve(self, numeral):
d = {"M": 1000, "D": 500, "C": 100, "L": 50, "X": 10, "V": 5, "I": 1}
ans = 0
n = len(numeral)
for (idx, c) in enumerate(numeral):
if idx < n - 1 and d[c] < d[numeral[idx + 1]]:
ans -= d[c]
else:
ans += d[c]
return ans
ob = Solution()
numeral = "MCLXVI"
print(ob.solve(numeral))
输入
"MCLXVI"
输出
1166
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

