Описание

Римские цифры представлены семью разными символами: I, V, X, L, C, D и M.

Symbol       Value
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

Например, два написано римскими цифрами как II, а два сложены вместе. Двенадцать записывается как XII, что означает просто X + II. Число двадцать семь записывается как XXVII, что равно XX + V + II.

Римские цифры обычно пишутся от наибольшего к наименьшему слева направо. Однако число четыре - это не IIII. Вместо этого число четыре записывается как IV. Поскольку единица стоит перед пятью, мы вычитаем ее и получаем четыре. Тот же принцип применяется к числу девять, которое записывается как IX. Вычитание используется в шести случаях:

  • I можно поместить перед V (5) и X (10), чтобы получилось 4 и 9.
  • X можно поместить перед L (50) и C (100), чтобы получилось 40 и 90.
  • C можно поместить перед D (500) и M (1000), чтобы получить 400 и 900.

Если дана римская цифра, преобразуйте ее в целое число. Гарантируется, что ввод находится в диапазоне от 1 до 3999.

Пример 1:

Input: "III"
Output: 3

Пример 2:

Input: "IV"
Output: 4

Пример 3:

Input: "IX"
Output: 9

Пример 4:

Input: "LVIII"
Output: 58
Explanation: L = 50, V= 5, III = 3.

Пример 5:

Input: "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

Решение

Прежде всего, необходимо создать карту с парами "ключ-значение" римско-целое число. После этого мы можем перебрать строку и подсчитать переменную результата.

Проблема с IX, IV, XC…

Нам нужно выяснить, как мы можем считать эти римские значения.

Правило довольно простое - если следующее значение больше текущего, нам нужно вычесть текущее значение из следующего. Например:

Так. внутри цикла for мы создадим переменные current и next. И в зависимости от того, больше ли next, чем current, мы заполняем результат:

Спасибо за прочтение! Жду ваших отзывов. До скорой встречи ✌️