Problem
# Given an integer, convert it to a roman numeral.
#
# Input is guaranteed to be within the range from 1 to 3999.
複制
AC
class Solution():
def intToRoman(self, x):
int2roman = {
1: "I", 4: "IV", 5: "V", 9: "IX",
10: "X", 40: "XL", 50: "L", 90: "XC",
100: "C", 400: "CD", 500: "D", 900: "CM",
1000: "M"
}
builder = []
for item in reversed(sorted(int2roman.keys())):
while x >= item:
builder.append(int2roman[item])
x -= item
return "".join(builder)
if __name__ == "__main__":
assert Solution().intToRoman(999) == 'CMXCIX'
assert Solution().intToRoman(3999) == 'MMMCMXCIX'
複制