13、罗马数字转整数
js
;(function () {
/**
* 13. 罗马数字转整数
*
* 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
*
* 字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
*
*/
function romanToInt(s: string): number {
// 方法一:
let map = new Map()
map.set('I', 1)
map.set('V', 5)
map.set('X', 10)
map.set('L', 50)
map.set('C', 100)
map.set('D', 500)
map.set('M', 1000)
let ans: number = 0
const n = s.length
for (let i = 0; i < n; ++i) {
const curVal = map.get(s[i])
if (i < n - 1 && curVal < map.get(s[i + 1])) {
ans -= curVal
} else {
ans += curVal
}
}
return ans
}
console.log(romanToInt('IV'))
})()