Interger To Roman
Problem
Given an integer, convert it to a roman numeral.
The number is guaranteed to be within the range from 1 to 3999.
Example
4 -> IV
12 -> XII
21 -> XXI
99 -> XCIX
Roman numerals:

Python
1 class Solution: 2 # @param {integer} num 3 # @return {string} 4 def parse(self, digit, index): 5 NUMS = { 6 1: 'I', 7 2: 'II', 8 3: 'III', 9 4: 'IV', 10 5: 'V', 11 6: 'VI', 12 7: 'VII', 13 8: 'VIII', 14 9: 'IX', 15 } 16 ROMAN = { 17 'I': ['I', 'X', 'C', 'M'], 18 'V': ['V', 'L', 'D', '?'], 19 'X': ['X', 'C', 'M', '?'] 20 } 21 22 s = NUMS[digit] 23 return s.replace('X', ROMAN['X'][index]).replace('I', ROMAN['I'][index]).replace('V', ROMAN['V'][index]) 24 25 def intToRoman(self, num): 26 s = '' 27 index = 0 28 while num != 0: 29 digit = num % 10 30 if digit != 0: 31 s = self.parse(digit, index) + s 32 num = num / 10 33 index += 1 34 return s

浙公网安备 33010602011771号