Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
Solution:
class Solution:
# @return a string
def intToRoman(self, num):
sol =[]
sol.append(self.digitToRoman(num/1000, ' ', ' ','M'))
sol.append(self.digitToRoman((num/100)%10, 'M', 'D', 'C'))
sol.append(self.digitToRoman((num/10)%10, 'C', 'L','X'))
sol.append(self.digitToRoman(num%10, 'X', 'V', 'I'))
return ''.join(sol)
def digitToRoman(self, num, charTen, charFive, charOne):
char=[]
if num>8:
for i in range(num,10):
char.append(charOne)
char.append(charTen)
elif num>=5:
char.append(charFive)
for i in range(5,num):
char.append(charOne)
elif num>3:
for i in range(num,5):
char.append(charOne)
char.append(charFive)
else:
for i in range(0,num):
char.append(charOne)
return ''.join(char)
No comments :
Post a Comment