Roman to Integer – Algorithm JavaScript – Easy

1.Description Given a roman numeral, convert it to an integer. Example 1: Input: s = "III" Output: 3 Explanation: III = 3. Example 2: Input: s = "LVIII" Output: 58 Explanation: L = 50, V= 5, III = 3. Example 3: Input: s = "MCMXCIV" Output: 1994 Explanation: M = 1000, CM = 900, XC

1.Description

Given a roman numeral, convert it to an integer.

Example 1:

Input: s = "III"
Output: 3
Explanation: III = 3.

Example 2:

Input: s = "LVIII"
Output: 58
Explanation: L = 50, V= 5, III = 3.

Example 3:

Input: s = "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

2.Solution

My algorithm

varromanToInt=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

Còn đây là thuật toán mình lượm trên mạng, rất ngắn và rất khó hiểu, đỉnh quá.

varromanToInt=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;};

Nguồn: viblo.asia

Bài viết liên quan

7 Cách Tăng Tốc Ứng Dụng React Hiệu Quả Mà Bạn Có Thể Làm Ngay

React là một thư viện JavaScript phổ biến trong việc xây dựng giao diện người d

Trung Quốc “thả quân bài tẩy”: hàng loạt robot hình người!

MỘT CUỘC CÁCH MẠNG ROBOT ĐANG HÌNH THÀNH Ở TRUNG QUỐC Thượng Hải, ngày 13/5 –

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con