Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Reverse Roman Numerals by mozurin
import functools
def reverse_roman(roman_string):
CHARS = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
TRANS = {
'IV': 'IIII', 'IX': 'VIIII',
'XL': 'XXXX', 'XC': 'LXXXX',
'CD': 'CCCC', 'CM': 'DCCCC',
}
return sum(
CHARS[c] for c in functools.reduce(
lambda s, trans: s.replace(*trans),
TRANS.items(),
roman_string
)
)
July 6, 2018