羅馬數字包含以下七種字符:?I,?V,?X,?L,C,D?和?M。
字符??????????數值I?????????????1 V?????????????5 X?????????????10 L?????????????50 C?????????????100 D?????????????500 M?????????????1000
例如, 羅馬數字 2 寫做?II?,即為兩個并列的 1。12 寫做?XII?,即為?X?+?II?。 27 寫做??XXVII, 即為?XX?+?V?+?II?。
通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做?IIII,而是?IV。數字 1 在數字 5 的左邊,所表示的數等于大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為?IX。這個特殊的規則只適用于以下六種情況:
I?可以放在?V?(5) 和?X?(10) 的左邊,來表示 4 和 9。
X?可以放在?L?(50) 和?C?(100) 的左邊,來表示 40 和?90。?
C?可以放在?D?(500) 和?M?(1000) 的左邊,來表示?400 和?900。
給定一個羅馬數字,將其轉換成整數。輸入確保在 1?到 3999 的范圍內。
示例?1:
輸入:?"III"輸出:?3
示例?2:
輸入:?"IV"輸出:?4
示例?3:
輸入:?"IX"輸出:?9
示例?4:
輸入:?"LVIII"輸出:?58解釋:?L?=?50,?V=?5,?III?=?3.
示例?5:
輸入:?"MCMXCIV"輸出:?1994解釋:?M?=?1000,?CM?=?900,?XC?=?90,?IV?=?4.
class?Solution:
????def?romanToInt(self,?s:?str)?->?int:
????????romandict?=?{
????????????'I':?1,
????????????'V':?5,
????????????'X':?10,
????????????'L':?50,
????????????'C':?100,
????????????'D':?500,
????????????'M':?1000
????????}
????????res?=?0
????????for?i?in?range(len(s)):
????????????if?i?<?(len(s)-1)?and?romandict[s[i]]?<?romandict[s[i?+?1]]:
????????????????res?-=?romandict[s[i]]
????????????else:
????????????????res?+=?romandict[s[i]]
????????return?res免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。