Задача: Перевод римских цифр в арабские
Разбираю очередную задачу с leetcode.
Дана римская цифра, преобразуйте ее в целое число. Римские цифры представлены семью различными символами: I, V, X, L, C, D и M (чему они равны показано на втором скрине).
Римские цифры обычно пишутся слева направо от большего к меньшему. Однако цифра четыре не 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 and IV = 4.
Пишите свои версии в комментариях.
Ответ с объяснением
#algorithms