罗马数字包含以下七种字符: IVXLCDM

    1. 字符 数值
    2. I 1
    3. V 5
    4. X 10
    5. L 50
    6. C 100
    7. D 500
    8. M 1000
    1. 例如, 罗马数字 2 写做 II ,即为两个并列的 1
    2. 12 写做 XII ,即为 X + II
    3. 27 写做 XXVII, 即为 XX + V + II
    1. 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,
    2. 例如 4 不写做 IIII,而是 IV
    3. 数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4
    4. 同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
    5. I 可以放在 V (5) X (10) 的左边,来表示 4 9
    6. X 可以放在 L (50) C (100) 的左边,来表示 40 90
    7. C 可以放在 D (500) M (1000) 的左边,来表示 400 900
    8. 给定一个罗马数字,将其转换成整数。输入确保在 1 3999 的范围内。
    var romanToInt = function(s) {
        const map = {
            I: 1,
            V: 5,
            X: 10,
            L: 50,
            C: 100,
            D: 500,
            M: 1000
        }
        let sum = 0;
        for(i = 0; i < s.length; i++) {
            const item = s[i];
            let val = map[item]; 
            if(val < map[s[i+1]]) {
                // 前面小于后面 后面 - 前面
                val = map[s[i+1]] - val;
                i++;
            }
            sum += val;
        }
        return sum
    };
    

    image.png