leetcode(13)羅馬數字轉整數(python3)

題目描述;
羅馬數字包含以下七種字符: 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…存儲,如果左面的比右邊的小則減去,比右邊的大,則相加,以此類推。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章