1. 程式人生 > 其它 >Python-羅馬數字轉整數

Python-羅馬數字轉整數


方式一:

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

方式二:

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