LeetCode (JavaScript)
Римские цифры представлены семью различными символами: I, V, X, L, и C,D,M
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Например, 2 записывается как II римскими цифрами, состоящими из двух единиц. 12 записывается как XII, то есть просто X + II. Число 27 записывается как 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:
Ввод: s = «III»
Выход: 3
Объяснение: III = 3.
Пример 2:
Ввод: s = «LVIII»
Выход: 58
Объяснение: L = 50, V = 5, III = 3.
Пример 3:
Ввод: s = "MCMXCIV"
Вывод: 1994
Объяснение: M = 1000, CM = 900, XC = 90 и IV = 4.
Итак, чтобы решить задачку сначала разобьем строку на символы и составим объект сравнения символов своим цифровым значениям, далее основная проблема определить правельную последовательность символом для значений 4,9,40,90,400,900, для этого сравниваем текущий символ со следующим и если он соответствуем правильно паре то суммируем значение к результату
//Решение Codesandbox
P.S.: Свои варианты решения пишите в комментариях