在Python中将罗马数字转换为整数的程序?
假设我们有一个罗马数字;我们必须将其转换为数字。众所周知,罗马数字从左到右从大到小由符号表示,唯一的例外是比符号少一个。罗马数字符号的一些含义如下:
'M':1000
'D':500
'C':100
'L':50
'X':10
'V':5
'我':1
因此,如果输入像数字=“MCLXVI”,那么输出将为1166,因为M=1000,C=100,总计为1100,则L=50,X=10,VI=6,所以总计为1166。
为了解决这个问题,我们将按照以下步骤操作:
如上获取数字列表
回答:=0
n:=数字大小
对于每个索引idx和值c的数字,执行
ans:=ans+d[c]
ans:=ans-d[c]
如果idx<n-1并且d[c]<d[numeral[idx+1]],则
除此以外,
返回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