Skip to content

Instantly share code, notes, and snippets.

@jay3686
Created September 29, 2014 02:47
Show Gist options
  • Save jay3686/cd176ea1181ed29608a8 to your computer and use it in GitHub Desktop.
Save jay3686/cd176ea1181ed29608a8 to your computer and use it in GitHub Desktop.
ROMANS = (('M', 1000),
('CM', 900),
('D', 500),
('CD', 400),
('C', 100),
('XC', 90),
('L', 50),
('XL', 40),
('X', 10),
('IX', 9),
('V', 5),
('IV', 4),
('I', 1))
def parse_roman_numeral_from_string(s):
roman_string = str(s)
n = 0
for letter, value in ROMANS:
while letter == roman_string[:len(letter)]:
n += value
roman_string = roman_string[len(letter):]
return n
def parse_roman_numeral_from_int(n):
roman_int = int(n)
s = ''
for letter, value in ROMANS:
while roman_int >= value:
s += letter
roman_int -= value
if roman_int == 0:
break
return s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment