Example 1:
Input: 3
Output: "III"
Example 2:
Input: 4
Output: "IV"
Example 3:
Input: 9
Output: "IX"
Example 4:
Input: 58
Output: "LVIII"
Explanation: L = 50, V = 5, III = 3.
Example 5:
Input: 1994
Output: "MCMXCIV"
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
由于限制输入在1~3999之间,所以可以写出1~10,10~3999间的能整除10的数的罗马数字,对于输入使用整数除法以及求余处理就可以O(1)的得到结果,下面代码:
class Solution:
def intToRoman(self, num):
M=['','M','MM','MMM']
C=['','C','CC','CCC','CD','D','DC','DCC','DCCC','CM']
X=['','X','XX','XXX','XL','L','LX','LXX','LXXX','XC']
I=['','I','II','III','IV','V','VI','VII','VIII','IX']
thousand=num//1000
hundred=(num//100)%10
ten=(num//10)%10
single=num%10
return M[thousand]+C[hundred]+X[ten]+I[single]