我的js算法爬坑之旅-罗马数字转整数

354 阅读1分钟

第二天:力扣13题,罗马数字转整数:

地址:leetcode-cn.com/problems/ro…

说下思路:这个罗马数字没有要求判断输入格式是否正确,这就节省了很多事情。

罗马数字转整数只有两种情况,一种是小的数字在大的数字前面,就是要相减,令一种则是正常的加就行了,所以只要做个判断就ok了。

var romanToInt = function(s) {

let object = {

'I':1,

'V':5,

'X':10,

'L':50,

'C':100,

'D':500,

'M':1000,

};//先定义对象,存放;

let sum = 0; //申明一个变量存放返回值

let a = s.split("");//将a声明成数组并且将s转化成数组存入a

for(let i = 0; i < a.length; i++)

{

if(object[a[i]]<object[a[i+1]]) //判断第一种情况

{

sum = sum - object[a[i]]+object[a[i+1]];

i++;

}

else{

sum = sum + object[a[i]];

}//第二种情况

}

return sum;

};

执行用时:172 ms, 在所有 JavaScript 提交中击败了73.54% 的用户

内存消耗:43.6 MB, 在所有 JavaScript 提交中击败了23.32% 的用户