Leetcode 13. Roman to Integer
分类:string math
遍历输入的字符串,记录遍历的前一个值,如果当前值不超过前一个值,则直接将结果增加当前值,否则增加当前值后要减掉2倍的前一个值。
例如XIV,结果从10->10+1->11+5-2->14
class Solution:
def romanToInt(self, s: str) -> int:
roman_map = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
result, prev = 0, 1000
for v in (roman_map[r] for r in s):
result, prev = result + v if v <= prev else result + v - 2 * prev, v
return result