12. 整数转罗马数字
解法一:套规则
class Solution:
def intToRoman(self, num: int) -> str:
res = ""
#获取各位
ones = num % 10
tens = (num // 10) % 10
hundreds = (num // 100) % 10
thousands = (num // 1000) % 10
for _ in range(thousands): #处理千位
res += "M"
#处理百位
if hundreds == 4:
res += "CD"
elif hundreds == 9:
res += "CM"
elif hundreds > 4 and hundreds < 9:
res += "D"
for _ in range(hundreds - 5):
res += "C"
elif hundreds > 0 and hundreds < 4:
for _ in range(hundreds):
res += "C"
#处理十位
if tens == 4:
res += "XL"
elif tens == 9:
res += "XC"
elif tens > 4 and tens < 9:
res += "L"
for _ in range(tens - 5):
res += "X"
elif tens > 0 and tens < 4:
for _ in range(tens):
res += "X"
#处理个位
if ones == 4:
res += "IV"
elif ones == 9:
res += "IX"
elif ones > 4 and ones < 9:
res += "V"
for _ in range(ones - 5):
res += "I"
elif ones > 0 and ones < 4:
for _ in range(ones):
res += "I"
return res解法二:映射
解法三:
最后更新于