您好,登錄后才能下訂單哦!
羅馬數(shù)字包含以下七種字符:?I
,?V
,?X
,?L
,C
,D
?和?M
。
字符??????????數(shù)值I?????????????1 V?????????????5 X?????????????10 L?????????????50 C?????????????100 D?????????????500 M?????????????1000
例如, 羅馬數(shù)字 2 寫(xiě)做?II
?,即為兩個(gè)并列的 1。12 寫(xiě)做?XII
?,即為?X
?+?II
?。 27 寫(xiě)做??XXVII
, 即為?XX
?+?V
?+?II
?。
通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例,例如 4 不寫(xiě)做?IIII
,而是?IV
。數(shù)字 1 在數(shù)字 5 的左邊,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 。同樣地,數(shù)字 9 表示為?IX
。這個(gè)特殊的規(guī)則只適用于以下六種情況:
I
?可以放在?V
?(5) 和?X
?(10) 的左邊,來(lái)表示 4 和 9。
X
?可以放在?L
?(50) 和?C
?(100) 的左邊,來(lái)表示 40 和?90。?
C
?可以放在?D
?(500) 和?M
?(1000) 的左邊,來(lái)表示?400 和?900。
給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。輸入確保在 1?到 3999 的范圍內(nèi)。
示例?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
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。