Roman to Integer - Algorithm JavaScript - Easy
Cảnh báo Spam: Bài đăng này chưa sẵn sàng để xuất bản. Tác giả có thể đã vô tình công khai nó trong quá trình viết. Do đó, bạn nên suy nghĩ trước khi đọc bài bài này.
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
Bình luận