在Python中将罗马数字转换为整数的程序?

在Python中将罗马数字转换为整数的程序?

假设我们有一个罗马数字;我们必须将其转换为数字。正如我们所知,罗马数字是由符号从左到右从大到小表示的,唯一的例外是表示少于一个符号的情况。一些罗马数字符号的含义如下:

  • ‘M’:1000

  • ‘D’:500

  • ‘C’:100

  • ‘L’:50

  • ‘X’:10

  • ‘V’:5

  • ‘I’:1

因此,如果输入为 numeral = “MCLXVI”,则输出将为1166,因为 M = 1000,C = 100,总共是1100,然后 L = 50,X = 10,VI = 6,因此总共是1166。

为了解决这个问题,我们将采取以下步骤:

参考上面提到的罗马数字列表

  • ans := 0

  • n := numeral 的大小

  • 对于每个索引 idx 和值 c 在 numeral 中,执行以下操作:

    • 如果 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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程