0

Roman to Integer - Algorithm JavaScript - Easy

Given a roman numeral, convert it to an integer. Cho một số la mã, hãy chuẩn số đó về số nguyên.

My algorithm

var romanToInt = function (s) {
    const romanNumber = {I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000};
    var result = 0;
    for (var i = 0; i < s.length; i++) {
    if (romanNumber[s[i]] < romanNumber[s[i + 1]]) {
        result = result + romanNumber[s[i + 1]] - romanNumber[s[i]];
        i++;
    } else {
        result = result + romanNumber[s[i]];
        }
    }
  return result;
};

Optimal Solution

Đây là thuật toán mà mình lượm trên mạng, nó cũng như vậy nhưng mà họ dùng toán tử 3 ngôi

var romanToInt = function(s) {
    const map = {
        'I': 1,
        'V': 5,
        'X': 10,
        'L': 50,
        'C': 100,
        'D': 500,
        'M': 1000
    }
    let result = 0;
    for (let i = 0; i < s.length; i++) {
        const curr = map[s[i]], next = map[s[i + 1]];
        result += curr < next ? - curr : curr;
    }
    return result;
};

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí