Python3_Leetcode #13 羅馬數字轉整數題解
阿新 • • 發佈:2021-07-09
思路:
當小的羅馬數字放在大的羅馬數字左邊時,可相當於做減法,因為不會出現亂放的現象(即輸入遵循羅馬數字規則)所以可以直接判斷後一位來決定做不做減法。
將代表的羅馬數字與數字放入一個字典
1. 迴圈取出字元,判斷當前位和後一位所代表數字的大小關係,迴圈長度為原長度-1,因為最後一位找不到後一位
2.如果當前位較大,則直接加當前位代表的數字
3.如果當前位較小,則直接減當前位代表的數字
4. 結果加上最後一位所代表的數字,則為所得
字元 數值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
I可以放在V(5) 和X(10) 的左邊,來表示 4 和 9。
X可以放在L(50) 和C(100) 的左邊,來表示 40 和90。
C可以放在D(500) 和M(1000) 的左邊,來表示400 和900
result+=condition[s[-1]] #這一步不要漏
returnresult