将1-3999的罗马数字变成整数。
关键在于知道罗马数字的形成规则,每两个数字比较,如果左边的数大于右边的数,则加起来;反之,则右边的数减去左边的数。
代码如下:
var romanToInt = function(s) {
res=0;
temp=new Array();
for(i=0;i<s.length;i++){
switch(s.charAt(i)){
case 'I':temp[i]=1;break;
case 'V':temp[i]=5;break;
case 'X':temp[i]=10;break;
case 'L':temp[i]=50;break;
case 'C':temp[i]=100;break;
case 'D':temp[i]=500;break;
case 'M':temp[i]=1000;break;
}
}
for(i=0;i<s.length;i++){
if(temp[i]<temp[i+1]){
res+=temp[i+1]-temp[i];
i++;
}
else{
res+=temp[i];
}
}
return res;
};