打卡群刷题总结0620——整数转罗马数字

2020-06-28 16:23:25 浏览数 (1)

题目: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:还是得日更呀,总结一下总是好的。

ps

0 人点赞