
解释
从上面几个示例可以看出,只要当前数字比后一位小的,就意味着这个数字是要被减去的。所以我们只要判断当前数字是否比后一位数字小即可,如果小于,则直接减去当前数字。
var romanToInt = function (s) {const map = {'I': 1,'V': 5,'X': 10,'L': 50,'C': 100,'D': 500,'M': 1000,}let before = 0let sum = 0for (let a of s) {if (before < map[a]) {sum -= before} else {sum += before}before = map[a]}// 经过 for 循环之后是还没把最后一位数字加上,所以需要在这里补上sum += beforereturn sum};
- 时间复杂度是
- 空间复杂度
