原题链接:leetcode13
题目描述:给定罗马字符表示的数字转为整数
思路:
保存罗马字符和数字之间的对应值,然后遍历罗马字符拿到对应的数字.
遍历罗马字符,正常情况前一个字符比后一个字符对应的数值大,直接数值进行相加即可,当前一个字符比后一个字符小的时候,要减去前一个字符对应的数值
// 利用map保存罗马字符和数字的对应值
let map = new Map([
['I', 1],
['V', 5],
['X', 10],
['L', 50],
['C', 100],
['D', 500],
['M', 1000]
])
console.log(map)
let res = 0
for (let i = 0; i < s.length; i++) {
if (map.get(s[i]) < map.get(s[i + 1])) {
res -= map.get(s[i])
} else {
res += map.get(s[i])
}
}
return res