13.罗马数字转整数

难度:简单
题目描述:
13.罗马数字转整数_第1张图片
13.罗马数字转整数_第2张图片
思路:看到这题首先想到的就是遍历+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

你可能感兴趣的:(朱滕威的面试之路)