leetcode 12 Integer to Roman

本次题目较简单,也似乎没用到什么算法,直接看代码如下:

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.


class Solution:  
    # @param {integer} num  
    # @return {string}  
    def intToRoman(self, num):  
        s=''  
        if num/1000!=0:  
            s=self.RomanDigit(s,num/1000,'M','#','#')  
            num%=1000  
        if num/100!=0:  
            s=self.RomanDigit(s,num/100,'C','D','M')  
            num%=100  
        if num/10!=0:  
            s=self.RomanDigit(s,num/10,'X','L','C')  
            num%=10  
        if num!=0:  
            s=self.RomanDigit(s,num,'I','V','X')  
        return s  
    def RomanDigit(self,s,digit,a,b,c):  
        if digit<4:  
            s+=a*digit  
            return s  
        elif digit==4:  
            s+=a+b  
            return s  
        elif digit<9:  
            s+=b+a*(digit-5)  
            return s  
        else:  
            s+=a+c  
            return s  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值