python解leetcode——13.Roman to Integer (罗马数字转为整数)

来源:互联网 发布:java教程pdf完整版 编辑:程序博客网 时间:2024/06/01 09:05
(来自百度百科)罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记数的方法:
  • 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;
  • 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;
  • 小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;
  • 在一个数的上面画一条横线,表示这个数增值 1,000 倍。

python实现:

class Solution(object):    def romanToInt(self, s):        """        :type s: str        :rtype: int        """        sum=0        convert={'M': 1000,'D': 500 ,'C': 100,'L': 50,'X': 10,'V': 5,'I': 1}         for i in range(len(s)-1):            #if (s[i]=='I' or s[i]=='X' or s[i]=='C') and convert[s[i]]<convert[s[i+1]]:            if convert[s[i]]<convert[s[i+1]]:                sum=sum-convert[s[i]]            else:                sum=sum+convert[s[i]]        return sum+convert[s[-1]]a=Solution()print a.romanToInt("MCDLXXVI")

0 0