javascript罗马数字转整数

45 阅读1分钟

思路是 IV = 4 这种的思路在于I < V 也就是这个判断 orStr[stArr[i]] < orStr[stArr[i + 1]] 所以就减去当前的 num = num - orStr[stArr[i]]

III = 3 这种的就直接加就ok

写的很菜多多指教

/**
 * @param {string} s
 * @return {number}
 */
var romanToInt = function (s) {
    let stArr = s.split('')
    let num = 0
    let orStr =
    {
        I: 1,
        V: 5,
        X: 10,
        L: 50,
        C: 100,
        D: 500,
        M: 1000
    }
    for (let i = 0; i < stArr.length; i++) {
        if (orStr[stArr[i]] < orStr[stArr[i + 1]]) {
            num = num - orStr[stArr[i]]
        } else {
            num = num + orStr[stArr[i]]
        }
    }
    return num
};