题目:
思路:
这题感觉逻辑上不算复杂,最简单暴力的方式,就是将每一位,每个数字拥有的可能直接列出来,或者针对每一位的数字转罗马字的规则列出来。
代码:
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