13.罗马数字转整数

时游小于 1 分钟LeetCode

13.罗马数字转整数

/*
 * @lc app=leetcode.cn id=13 lang=typescript
 *
 * [13] 罗马数字转整数
 */

// @lc code=start
function romanToInt(s: string): number {
	let arr: string[] = s.split("");
	let total: number = 0;
	for (let i = 0; i < arr.length; i++) {
		if (getValue(arr[i]) < getValue(arr[i + 1])) {
			total += getValue(arr[i + 1]) - getValue(arr[i]);
			++i
		} else {
			total += getValue(arr[i]);
		}
	}
	return total;
}

function getValue(ch: string): number {
    switch (ch) {
        case 'I': return 1;
        case 'V': return 5;
        case 'X': return 10;
        case 'L': return 50;
        case 'C': return 100;
        case 'D': return 500;
        case 'M': return 1000;
        default: return 0;
    }
}
// @lc code=end


上次编辑于:
贡献者: 15327360835
Loading...