题目:12. 整数转罗马数字
链接:https://leetcode-cn.com/problems/roman-to-integer
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X II 。27 写做 XXVII, 即为 XX V II 。 给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。
解题:
1、暴力破解。
2、由于数字范围是1-3999,直接得到个位数、十位数、百位数、千位数,转换为对应的罗马数字。
代码:
代码语言:javascript复制class Solution(object):
def intToRoman(self, num):
"""
:type num: int
:rtype: str
"""
char_10 = ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX']
char_100 = ['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC']
char_1000 = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM']
char_3000 = ['', 'M', 'MM', 'MMM']
return char_3000[num // 1000] char_1000[(num // 100) % 10] char_100[(num // 10) % 10] char_10[(num % 10)]
PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。
PPS:还是得日更呀,总结一下总是好的。