您好,登錄后才能下訂單哦!
羅馬數字包含以下七種字符:?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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。