13. Roman to Integer

题目:

将罗马数字转化为阿拉伯数字,具体对应关系可以见上一篇博客,不再详述,给出几个列子
Example 1:
Input: 3
Output: “III”

Example 2:
Input: 4
Output: “IV”

Example 3:
Input: 9
Output: “IX”

Example 4:
Input: 58
Output: “LVIII”
Explanation: L = 50, V = 5, III = 3.

Example 5:
Input: 1994
Output: “MCMXCIV”
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
思路: 此题较为简单,上一题弄懂了这一题就比较容易理解,讨论出4, 9, 40, 90, 400, 900这几个特殊值的表示即可。
代码仅供参考:

class Solution(object):
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        dic = dic = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000, 'IV':4, 'IX':9, 'XL':40, 'XC':90, 'CD':400, 'CM':900}
        num = 0
        i = 0
        n = len(s)
        if n == 0:
            return 0
        while i < n-1:
            if s[i]+s[i+1] in dic.keys():
                num = num + dic[s[i]+s[i+1]]
                i += 1
            else:
                num = num + dic[s[i]]
            i += 1
        if i == n:
            return num
        else:
            return num + dic[s[-1]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值