题目
思路
- 首先将所有的组合可能性列出并添加到哈希表中
- 然后对字符串进行遍历,由于组合只有两种,一种是 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 = 0
- i = 0
- while 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 += 2
- else:
- integer += char_2_num[s[i]]
- i += 1
- return integer
 

 
 
                         
                                

