acclivity

pyRomanNumeralsToInteger

Jan 24th, 2021 (edited)
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. # Convert Roman Numerals To Integer
  2. # Mike Kerry - December 2020 - acclivity2@gmail.com
  3.  
  4.  
  5. def convert_roman_to_int(s):
  6.     roman = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
  7.     result, prev = 0, 0
  8.     for x in range(len(s)):
  9.         if roman[s[x]] > prev:
  10.             result -= 2*prev        # e.g. IX we had already added 1 but should have deducted 1
  11.         result += roman[s[x]]
  12.         prev = roman[s[x]]
  13.     return result
  14.  
  15.  
  16. tests = ["MMDCXL", "MCCCLXIX", "CDXXXVIII"]
  17.  
  18. for t in tests:
  19.     ps = convert_roman_to_int(t)
  20.     print(t, " = ", ps)
  21.  
  22.  
  23. # Results:-
  24. # MMDCXL  =  2640
  25. # MCCCLXIX  =  1369
  26. # CDXXXVIII  =  438
  27.  
Add Comment
Please, Sign In to add comment