难度:简单
题目描述:
思路:看到这题首先想到的就是遍历+6中特殊情况的判断,这种思路确实能通过,但是代码看起来较为臃肿,效率也是极低的。
#题解一:遍历+特殊情况判断
class Solution:
def romanToInt(self, s: str) -> int:
dicts = {"I":1,"V":5,"X":10, "L":50,"C":100,"D":500,"M":1000}
count = 0
i = 0
while i < len(s):
if s[i] == "I" and i+1 < len(s) and s[i]+s[i+1] == "IV":
count += 4
i += 1
elif s[i] == "I" and i+1 < len(s) and s[i]+s[i+1] == "IX":
count += 9
i += 1
elif s[i] == "X" and i+1 < len(s) and s[i]+s[i+1] == "XL":
count += 40
i += 1
elif s[i] == "X" and i+1 < len(s) and s[i]+s[i+1] == "XC":
count += 90
i += 1
elif s[i] == "C" and i+1 < len(s) and s[i]+s[i+1] == "CD":
count += 400
i += 1
elif s[i] == "C" and i+1 < len(s) and s[i]+s[i+1] == "CM":
count += 900
i += 1
else:
count += dicts[s[i]]
i += 1
return count