- Roman to Integer
写太长了舍不得删
class Solution:
def romanToInt(self, s: str) -> int:
res = 0
i = 0
while i <= len(s) - 1:
if s[i] == 'M':
res += 1000
elif s[i] == 'D':
res += 500
elif s[i] == 'C':
if i+1 <= len(s) - 1 and s[i+1] == 'M':
res += 900
i += 1
elif i+1 <= len(s) - 1 and s[i+1] == 'D':
res += 400
i += 1
else:
res += 100
elif s[i] == 'L':
res += 50
elif s[i] == 'X':
if i+1 <= len(s) - 1 and s[i+1] == 'C':
res += 90
i += 1
elif i+1 <= len(s) - 1 and s[i+1] == 'L':
res += 40
i += 1
else:
res += 10
elif s[i] == 'V':
res += 5
elif s[i] == 'I':
if i+1 <= len(s) - 1 and s[i+1] == 'X':
res += 9
i += 1
elif i+1 <= len(s) - 1 and s[i+1] == 'V':
res += 4
i += 1
else:
res += 1
i += 1
return res
看到的别人的答案
class Solution:
def romanToInt(self, s: str) -> int:
dict = { 'I' : 1,
'V' : 5,
'X' : 10,
'L' : 50,
'C' : 100,
'D' : 500,
'M' : 1000 }
res = 0
i = 0
while i < len(s) - 1:
if dict[s[i]] >= dict[s[i+1]]:
res += dict[s[i]]
i += 1
else:
res += (dict[s[i+1]] - dict[s[i]])
i += 2
if i < len(s):
res += dict[s[i]]
return res