力扣第12题“整数转罗马数字”(python解决)

题目:

思路:

 这题感觉逻辑上不算复杂,最简单暴力的方式,就是将每一位,每个数字拥有的可能直接列出来,或者针对每一位的数字转罗马字的规则列出来。

代码:

class Solution:
    def intToRoman(self, num: int) -> str:
        m_num =num // 1000
        str_m = "M"*m_num
        c_num = (num - m_num*1000)//100
        if c_num == 4:
            str_c ="CD"
        elif c_num == 9:
            str_c ="CM"
        else:
            if c_num>=5:
                str_c = "D"+"C"*(c_num-5)
            else:
                str_c = "C"*c_num    
        x_num = (num-m_num*1000-c_num*100)//10
        if x_num == 4:
            str_x ="XL"
        elif x_num == 9:
            str_x ="XC"
        else:
            if x_num>=5:
                str_x = "L"+"X"*(x_num-5)
            else:
                str_x = "X"*x_num  
        i_num =num%10
        if i_num == 4:
            str_i ="IV"
        elif i_num == 9:
            str_i ="IX"
        else:
            if i_num>=5:
                str_i = "V"+"I"*(i_num-5)
            else:
                str_i = "I"*i_num  
        return str_m+str_c+str_x+str_i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值