题目
思路
- 首先将所有的组合可能性列出并添加到哈希表中
- 然后对字符串进行遍历,由于组合只有两种,一种是 1 个字符,一种是 2 个字符,其中 2 个字符优先于 1 个字符
- 先判断两个字符的组合在哈希表中是否存在,存在则将值取出加到结果 ans 中,并向后移2个字符。不存在则将判断当前 1 个字符是否存在,存在则将值取出加到结果 ans 中,并向后移 1 个字符
- 遍历结束返回结果 ans
class Solution:def romanToInt(self, s: str) -> int:char_2_num = {'I':1, 'V':5, 'X':10, 'L':50,'C':100, 'D':500, 'M':1000}integer = 0i = 0while i < len(s):if i + 1 < len(s) and char_2_num[s[i]] < char_2_num[s[i + 1]]:integer += (char_2_num[s[i + 1]] - char_2_num[s[i]])i += 2else:integer += char_2_num[s[i]]i += 1return integer

