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 Magu
def reverse_roman(roman_string):
sum = 0; r = roman_string
if 'CM' in r:
sum += 900
r = r.replace('CM', '')
if 'CD' in r:
sum += 400
r = r.replace('CD', '')
if 'XC' in r:
sum += 90
r = r.replace('XC', '')
if 'XL' in r:
sum += 40
r = r.replace('XL', '')
if 'IX' in r:
sum += 9
r = r.replace('IX', '')
if 'IV' in r:
sum += 4
r = r.replace('IV', '')
sum = sum + 1000 * bool('M' in r) * list(r).count('M') + 500 * bool('D' in r) + 100 * bool('C' in r) * list(r).count('C') + 50 * bool('L' in r) \
+ 10 * bool('X' in r) * list(r).count('X') + 5 * bool('V' in r) + bool('I' in r) * list(r).count('I') if r else sum
return sum
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!');
Oct. 14, 2021
Comments: