Easy
, Msc
將羅馬數(shù)字轉(zhuǎn)化為阿拉伯?dāng)?shù)字榨惰。
基本字符:
I拜英、V、X琅催、L居凶、C、D藤抡、M
相應(yīng)的阿拉伯?dāng)?shù)字表示為:
1.5侠碧、10、50缠黍、100弄兜、500、1000
(1)相同的數(shù)字連寫瓷式,所表示的數(shù)等于這些數(shù)字相加得到的數(shù)替饿,如:Ⅲ = 3;
(2)小的數(shù)字在大的數(shù)字的右邊贸典,所表示的數(shù)等于這些數(shù)字相加得到的數(shù)视卢, 如:Ⅷ = 8;Ⅻ = 12瓤漏;
(3)小的數(shù)字腾夯,(限于Ⅰ颊埃、X 和C)在大的數(shù)字的左邊蔬充,所表示的數(shù)等于大數(shù)減小數(shù)得到的數(shù),如:Ⅳ= 4班利;Ⅸ= 9饥漫;
從右往左轉(zhuǎn)換后加到響應(yīng)值,如果前值小于后值罗标,需要將該值從已有響應(yīng)值減去庸队。
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
d = {'M':1000, 'D':500, 'C':100, 'L':50, 'X':10, 'V':5, 'I':1}
re = 0
p = 'I'
for c in s[::-1]:
if d[c] < d[p]:
re -= d[c]
p = c
else:
re += d[c]
p = c
return re