Engaged Employer
Implement an algorithm to convert an integer into a roman numeral string and vice versa.
Anonymous
Solutions in Python def int_to_roman(number): """ Convert integer to Roman Numeral. """ numerals = [['I', 'V', 'X'], ['X', 'L', 'C'], ['C', 'D', 'M']] patterns = [[], [0], [0, 0], [0, 0, 0], [0, 1], [1], [1, 0], [1, 0, 0], [1, 0, 0, 0], [0, 2], [2]] place = 0 roman = '' while number >= 1: current = number % 10 pattern = patterns[current] for value in pattern: roman = numerals[place][value] + roman number, place = number / 10, place + 1 return roman def roman_to_int(roman): """ Convert Roman Numeral to integer. """ queue = Queue() for letter in roman: queue.eq(letter) integer = 0 conversions = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000} while not queue.empty(): first, next = queue.dq(), queue.peek() or 0 if conversions[first] >= conversions[next]: integer += conversions[first] else: queue.dq() integer += conversions[next] - conversions[first] return integer
Check out your Company Bowl for anonymous work chats.