Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # https://www.codewars.com/kata/51b66044bce5799a7f000003/train/python
- def to_roman(number: int) -> str:
- roman_number = {'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}
- roman = ''
- for k,v in roman_number.items():
- if (number // v) > 0:
- roman += (number // v) * k
- number = number % v
- else:
- continue
- return roman
- def from_roman(string: str) -> int:
- roman_number = {'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}
- list_char = list(string)
- number = 0
- while list_char != []:
- if len(list_char) == 1:
- number += roman_number.get(list_char[0])
- list_char.remove(list_char[0])
- elif roman_number.get(list_char[0]) > roman_number.get(list_char[1]):
- number += roman_number.get(list_char[0])
- list_char.remove(list_char[0])
- elif roman_number.get(list_char[0]) < roman_number.get(list_char[1]):
- number += roman_number.get(list_char[0]+list_char[1])
- del list_char[0:2]
- elif roman_number.get(list_char[0]) == roman_number.get(list_char[1]):
- number += string.count(list_char[0]) * roman_number.get(list_char[0])
- del list_char[0:string.count(list_char[0])]
- return number
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement