https://leetcode-cn.com/problems/integer-to-roman/

代码:

# -*- coding:utf-8 -*-

class Solution(object):
    def intToRoman(self, num):
        """
        :type num: int
        :rtype: str
        """
        num_list = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
        alpha_list = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
        result = ''
        while num > 0:
            for i in range(len(num_list)):
                if num >= num_list[i]:
                    num -= num_list[i]
                    result += alpha_list[i]
                    break
        return result
        pass
if __name__ == '__main__':
    num = 20
    print(Solution().intToRoman(num))

思路:这道题就是个简单的打表,值得一说的就是将罗马数字中特殊规则作为一般规则放入列表中,然后从大到小依次输出罗马数字字母。

分类: 算法

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注