题目为罗马数字转整数,题目本身比较简单,主要就是当前字符和队名的大小进行匹配,如果是特殊字符则按照规则加减,在本题目中遇到的一个问题就是python中与c++中对数组的访问形式是不同的,最初想返回下标的时候用的是i.index(m)后来在提交之后发现错误,回头查找发现index()方法返回的是在该列表中出现的最早的目标元素,于是为了使用这个下标判断是否到了最后一个字节就不得不再定义一个新的index变量
class Solution:
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
length=len(s)
res=0
index=0
for i in s:
if i =='I':
if index+1==length:
res+=1
elif (s[index+1]!='V' and s[index+1]!='X'):
res+=1
elif(s[index+1]=='V' or s[index+1]=='X'):
res-=1
elif i=='V':
res+=5
elif i=='X':
if index+1==length:
res+=10
elif (s[index+1]!='L' and s[index+1]!='C'):
res+=10
elif(s[index+1]=='L' or s[index+1]=='C'):
res-=10
elif i=='L':
res+=50
elif i=='C':
if index+1==length:
res+=100
print('123')
elif (s[index+1]!='D' and s[index+1]!='M'):
res+=100
elif(s[index+1]=='D' or s[index+1]=='M'):
res-=100
elif i=='D':
res+=500
elif i=='M':
res+=1000
index+=1;
return res