/** * @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 }
使用哈希表和双指针解答。