Roman to integer
August 15, 2022
math-and-geometryProblem URL: Roman to integer
We can replace characters like IV
or IX
to IIII
and VIIII
. In that way, when we calculate our result, we can just translate the value to integer withour any prior calculations. We will have a hashmap to have translate all the roman numerals to integer values, and sum this up to return as result.
class Solution:
def romanToInt(self, s: str) -> int:
translations = {
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000
}
s = s.replace('IV', 'IIII') \
.replace('IX', 'VIIII') \
.replace('XL', 'XXXX') \
.replace('XC', 'LXXXX') \
.replace('CD', 'CCCC') \
.replace('CM', 'DCCCC')
return sum(map(translations.get, s))
Time Complexity: O(n)
Space Complexity: O(1)