/**
* @param {string} s
* @return {number}
*/
var romanToInt = function(s) {
// 1创建罗马-数字对应的数据结构 Hash表
let result = 0
let obj = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000,
}
// 2循环遍历Input
for (let i = 0; i < s.length; i++) {
let front = s[i], back = s[i + 1]
// 3判断
if (obj[front] < obj[back])
result -= obj[front]
else
result += obj[front]
}
// 4输出结果
return result
}
使用哈希表和双指针解答。