问题描述:
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
解题思路:
上一题反过来就可以了,其实觉得这两道题很没有意思。
代码如下:
public class Solution { public int romanToInt(String s) { int result; if (s == null || s.length() == 0) return 0; result = toNumber(s.charAt(0)); for (int i = 1; i < s.length(); i++) { if (toNumber(s.charAt(i - 1)) < toNumber(s.charAt(i))) { result += toNumber(s.charAt(i)) - 2 * toNumber(s.charAt(i - 1)); } else { result += toNumber(s.charAt(i)); } } return result; } private int toNumber(char ch) { switch (ch) { case 'I': return 1; case 'V': return 5; case 'X': return 10; case 'L': return 50; case 'C': return 100; case 'D': return 500; case 'M': return 1000; } return 0; } }