算法设计与应用基础系列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的方式来转换。
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; }