# leetcode #4:13-Roman to Integer
給羅馬數字翻譯成整數
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
但當小的字母在大的字母的左邊,小的字母視為減號
小的字母只可能會有IXC三種
長度1-15,結果1-3999,不會有無效的字母輸入
## 思考
先把字串變成list,數字大小跟左邊的比較,因此先從最右邊開始
羅馬跟數字對應用字典列出
最右邊當起始,跟左邊一個比較,如果左邊小就減去左邊,否則就加上左邊
```
class Solution:
def romanToInt(self, s: str) -> int:
dic= {"I":1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000}
l=len(s)
xx=list(s)
i=l-2
v=dic[xx[l-1]]
a=v
while i > -1:
b= dic[xx[i]]
if b < a:
v = v - b
else:
v = v + b
a = b
i = i-1
return v
```
## 檢討與複習
* xspace
原來code使用while,i從大開始
但也可以用for i in xspace(l-2,-1,-1)
表示線性間隔(頭,尾,間隔) 不含尾,逆序的話間隔負號
* 字典
a= {key:value, ....}
a[key] = value
###### tags: `python` `leetcode`