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 lukasz.bogaczynski
romans = {"M": 1000,
"D": 500,
"C": 100,
"L": 50,
"X": 10,
"V": 5,
"I": 1}
substractable = {
"CD": 400,
"CM": 900,
"IV": 4,
"XL": 40,
"IX": 9,
"XC": 90
}
def reverse_roman(roman_to_transform):
result = 0
while len(roman_to_transform) > 0:
if len(roman_to_transform) > 1:
if roman_to_transform[0:2] in substractable.keys():
result = result + substractable[roman_to_transform[0:2]]
roman_to_transform = roman_to_transform[2:]
continue
result = result + romans[roman_to_transform[0]]
roman_to_transform = roman_to_transform[1:]
return result
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert reverse_roman('VI') == 6, '6'
assert reverse_roman('LXXVI') == 76, '76'
assert reverse_roman('CDXCIX') == 499, '499'
assert reverse_roman('MMMDCCCLXXXVIII') == 3888, '3888'
print('Great! It is time to Check your code!');
Nov. 13, 2017