Описание
Римские цифры представлены семью разными символами: 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, мы заполняем результат:
Спасибо за прочтение! Жду ваших отзывов. До скорой встречи ✌️