在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