題目描述;
羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。
字符 數值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
給定一個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的範圍內。
class Solution:
def romanToInt(self, s: str) -> int:
# 對於前面的數小於後面的數,採用先減後加的方法,同時最後一位數恆爲加
dict_ = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
sums = 0
m = len(s)
for i in range(m):
if i != m-1:
if dict_[s[i]]<dict_[s[i+1]]:
sums -= dict_[s[i]]
else:
sums += dict_[s[i]]
else:
sums += dict_[s[i]]
return sums
解題思路:
將羅馬數字進行字典的符號映射存儲,對給出的羅馬數字如果爲單個符號,直接進行映射。如果爲多個符號,則進行字符串的大小逐位的比較,字符串從左面爲0,1 ,2…存儲,如果左面的比右邊的小則減去,比右邊的大,則相加,以此類推。