题解思路:保留当前位的值,遍历下一位,然后比较下一位与当前值的大小关系,如果当前值小于下一位,用减法;反之用加法。
class Solution { public int romanToInt(String s) { int result = 0; int prenum = getValue(s.charAt(0)); for (int i = 1; i < s.length() ; i++) { int num =getValue(s.charAt(i)); if (prenum >= num){ result += prenum; } else { result -= prenum; } prenum = num; } result += prenum; return result; } public static int getValue(char c){ switch (c){ 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; default: return 0; } } }