Пример реализации (Python):
def roman_to_int(s):
roman_map = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
result = 0
prev_value = 0
for numeral in reversed(s):
value = roman_map[numeral]
if value < prev_value:
result -= value
else:
result += value
prev_value = value
return result
import re
input_string = "В ММХІІІ году в школе СХХІІІ состоялся очередной выпуск XI классов."
def replace_roman_numerals(text):
# Регулярное выражение для поиска римских чисел (упрощенное)
# Это регулярное выражение не идеально, но подходит для данного примера
# Более полное выражение было бы значительно сложнее
roman_pattern = re.compile(r'M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})')
def replacer(match):
roman_numeral = match.group(0)
return str(roman_to_int(roman_numeral))
return roman_pattern.sub(replacer, text)
output_string = replace_roman_numerals(input_string)
print(f"Результат: {output_string}")
Результат: В 2013 году в школе 123 состоялся очередной выпуск 11 классов.