First we have to know the rules of Roman numbers: https://en.wikipedia.org/wiki/Roman_numerals
After knowing the rules, the process is quite simple: move numbers from large to small, and create a map from Roman to usual numbers.
Solution:
# T:O(n) S:O(1) class Solution: # @param {integer} num # @return {string} def intToRoman(self, num): val = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1] syb = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'] res, i = '', 0 while num > 0: for _ in xrange(num//val[i]): res += syb[i] num -= val[i] i += 1 return resRun time: 128 ms
No comments:
Post a Comment