13 羅馬數字轉整數

2021-10-12 16:33:26 字數 1224 閱讀 3769

13. 羅馬數字轉整數

class solution(object):

def romantoint(self, s):

""":type s: str

:rtype: int

"""table =

number = 0

if len(s) <= 1:

return table[s]

for index, char in enumerate(s):

number += table[char]

if index != len(s)-1:

if char == 'i':

if s[index+1] == 'v' or s[index+1] == 'x':

number -= 2

if char == 'x':

if s[index+1] == 'l' or s[index+1] == 'c':

number -= 20

if char == 'c':

if s[index+1] == 'd' or s[index+1] == 'm':

number -= 200

return number

看的別人的解法,主要思路:

大的在小的左邊,則加

大的在小的右邊,則減

class solution(object):

def romantoint(self, s):

""":type s: str

:rtype: int

"""table =

number = 0

if len(s) <= 1:

return table[s]

for index in range(0, len(s)-1):

current_num = table[s[index]]

next_num = table[s[index+1]]

if current_num >= next_num:

number += current_num

else:

number -= current_num

number += table[s[-1]]

return number

其它解法:

把所有兩個字元組成的羅馬字代表的大小也列出來

把兩個字元組成的羅馬字都替換成單個的其他字元

13 羅馬數字轉整數

羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在大的數...

13 羅馬數字轉整數

羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在大的數字...

13 羅馬數字轉整數

羅馬數字包含以下七種字元 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 通常情況下,羅馬數字中...