罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/integer-to-roman
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
————————————
解题思路:
使用列表保存罗马数字和对应的阿拉伯数字,然后从大往小对数字进行遍历。
class Solution:
def intToRoman(self, num: int) -> str:
'''
贪心算法思想
'''
nums = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
romans = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
length = len(nums)
answer = ''
i = 0
while(i<length): # 从大往小进行选择,一开始是1000对应的索引
while(num>=nums[i]): # 如果当前num数字大于列表中的值
answer += romans[i] # 找到对应的罗马字符
num -= nums[i] # 将其对应的阿拉伯数字减去
i += 1
return answer