Roman to integer
2015-12-28 10:57
169 查看
将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;
};
关键在于知道罗马数字的形成规则,每两个数字比较,如果左边的数大于右边的数,则加起来;反之,则右边的数减去左边的数。
代码如下:
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;
};
相关文章推荐
- constexpr
- html》meta标签笔记
- 摄像头如何选择问题概述
- windows下MongoDB的安装及配置
- C\C++各路高手以及操作系统专家请进来杀死这个进程
- c#自定义液晶数字控件
- jQuery中aninamte不能改变背景/颜色的解决问题
- Java线程篇(十):Compare And Swap
- 最短路径之Floyd-Warshall(只有五行的最短路)
- python_关于实例化类
- 使用JS判断上传文件大小
- 通过干扰相关的来提示自定义rank
- 外键
- Daily Scrum 12-25
- Android导入Android OpenCV Samples出错
- 安卓开发如何判断EditText是否有输入?
- HTML实现页面自动跳转的五种方法
- java下使用kaptcha生成验证码
- linux在shell下的串口的一些操作
- CABasicAnimation