Leetcode # 13. Roman to Integer
- 2023.07.18
- LeetCode
https://leetcode.com/problems/roman-to-integer
Solution
Time Complexity: O(len(s))
Space Complexity: O(1)
(The input and output generally do not count towards the space complexity.)
class Solution:
def romanToInt(self, s: str) -> int:
roman = [
[ "I", 1],
["IV", 4],
[ "V", 5],
["IX", 9],
[ "X", 10],
["XL", 40],
[ "L", 50],
["XC", 90],
[ "C", 100],
["CD", 400],
[ "D", 500],
["CM", 900],
[ "M", 1000]
]
r_i, s_i = 0, len(s)
num = 0
while s_i > 0 and r_i < len(roman):
if s[0:s_i].endswith(roman[r_i][0]):
num += roman[r_i][1]
s_i -= len(roman[r_i][0]) # !!!
else:
r_i += 1
return num
Last Updated on 2023/08/16 by A1go