roman to integer

只能说又是一只纸老虎

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class (object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
# I V X L C D M
# 1 5 10 50 100 500 1,000
# special cases
#Number 4 9 40 90 400 900
#Note IV IX XL XC CD CM
number = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
symbol = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
n = 0
i = 0
while i < len(s):
if s[i:i+2] in symbol:
index = symbol.index(s[i:i+2])
n += number[index]
i += 2
else:
index = symbol.index(s[i])
n += number[index]
i += 1
return n