羅馬數字轉換成十進位制
Convert Roman Numerals to Decimal
羅馬數字轉換成十進位制
問題描述
以字串的形式給定一個羅馬數字,將其轉化為十進位制的數值。羅馬數字都是基於下面這些基本符號:
I 1
IV 4
V 5
IX 9
X 10
XL 40
L 50
XC 90
C 100
CD 400
D 500
CM 900
M 1000
羅馬數字的規則如下:
1.) 在 V 或者 X 前面的 I 表示減一,例如 4 = IV,9 = IX
2.) 放在 L 或者 C 前面的 X 表示減十,例如 40 = XL,90 = XC
3.) 放在 D 或者 M 前面的 C 表示減100,例如 400 = CD,900 = CM
測試樣例
# Input:
'MCMIV'
# Output:
1904
# 5-1+1000-100+1000
內容首發於微信公眾號IT資訊教室,如果您想學習更多AI相關的技能,歡迎搜尋關注或微信掃描下方二維碼關注~~
參考程式碼
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# O(n) time, O(1) space.
class Solution:
def romanToInt(self, romanString):
romanNumerals = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
previous = 0
total = 0
for char in romanString[::-1]:
current = romanNumerals[char]
if current >= previous:
total += current
else:
total -= current
previous = current
return total
# Test Program
romanString = 'MCMIV'
print(Solution().romanToInt(romanString))
# 1904
相關文章
- 使用 Haskell 將十進位制數字轉成羅馬數字Haskell
- JavaScript 二進位制數字轉換為十進位制JavaScript
- javascript十進位制數字和二進位制相互轉換JavaScript
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- Qt進位制轉換(十進位制轉十六進位制)QT
- js將數字轉換成二進位制形勢JS
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- 其他進位制的數字 轉換
- 十六進位制轉換為十進位制
- 進位制數轉換方法(八/十六/十)
- 十六進位制數轉十進位制
- 二進位制轉十進位制快速轉換方法
- [MSSQL]將十進位制轉成十六進位制SQL
- JavaScript十進位制轉換為二進位制JavaScript
- Oracle二進位制與十進位制轉換Oracle
- js將二進位制數字轉換為十進位制程式碼例項JS
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- Go語言實現十進位制轉換成二、八、十六進位制Go
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 十進位制與二進位制互相轉換指南
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 十進位制轉換任意進位制--鏈棧實現
- js二進位制和十進位制轉換程式碼JS
- Oracle中十進位制與十六進位制轉換程式Oracle
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- sql 數字轉換為16進位制數函式SQL函式
- leedcode-數字轉換為十六進位制數
- 數的進位制轉換
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換