您的位置:首页 > 其它

算法设计与应用基础系列7

2017-06-14 13:43 246 查看

Roman to Integer

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

Subscribe to see which companies asked this question.

题解:要把一个string的罗马数字转化成阿拉伯数字,首先要了解罗马数字与阿拉伯数字之间的转换关系这个靠百度,重点是用什么方式转换。我选择的是一种大家比较容易想到和接受的方法就是把这个字符串分解成一个个的字符(char),然后用case的方式来转换。

public static int romanToInt(String s) {
int res = 0;
for (int i = s.length() - 1; i >= 0; i--) {
char c = s.charAt(i);
switch (c) {
case 'I':
res += (res >= 5 ? -1 : 1);
break;
case 'V':
res += 5;
break;
case 'X':
res += 10 * (res >= 50 ? -1 : 1);
break;
case 'L':
res += 50;
break;
case 'C':
res += 100 * (res >= 500 ? -1 : 1);
break;
case 'D':
res += 500;
break;
case 'M':
res += 1000;
break;
}
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: