13.罗马数字转整数
给定一个罗马数字,将其转换成整数。
返回的结果要求在 1 到 3999 的范围内。
我
d = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
result = 0
i = 0
while i < len(s)-1:
if d[s[i]] >= d[s[i+1]]:
result+= d[s[i]]
i+=1
else:
temp = d[s[i+1]]-d[s[i]]
result+=temp
i+=2
if i == len(s)-1:
result+=d[s[i]]
return result if 1 <= result <= 3999 else False
别人
d = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
result = 0
for i in range(len(s)-1):
if d[s[i]] < d[s[i+1]]:
result-= d[s[i]]
else:
result+=d[s[i]]
result+=d[s[len(s)-1]]
return result if 1 < result < 3999 else False
相关知识点在word文档中。
总结:思想要灵活,只知道加,不知道换个角度思考,不能加我可以减呐!