Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Convert Roman Numerals To Integer
- # Mike Kerry - December 2020, August 2023 - [email protected]
- def convert_roman_to_int(s):
- roman = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
- result, prev = 0, 0
- for c in s.upper(): # iterate through Roman Numeral string
- v = roman[c] # Get value of current character
- if v > prev: # is the current letter value greater than the previous? ...
- result -= 2*prev # ... yes, e.g. IX we had already added 1 but should have deducted 1
- result += v # add value of this letter to result
- prev = v # remember value of latest letter
- return result
- tests = ["MMDCXL", "MCCCXLIX", "CDXXXVIII"]
- for t in tests:
- ps = convert_roman_to_int(t)
- print(t, " = ", ps)
- # Results:-
- # MMDCXL = 2640
- # MCCCXLIX = 1349
- # CDXXXVIII = 438
Advertisement
Advertisement