溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

leetcode--羅馬數(shù)字轉(zhuǎn)整數(shù)

發(fā)布時(shí)間:2020-07-16 17:57:03 來(lái)源:網(wǎng)絡(luò) 閱讀:434 作者:ading2016 欄目:編程語(yǔ)言

羅馬數(shù)字包含以下七種字符:?I,?V,?X,?LC,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


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI