当前一位小于后一位的时候才是后一位减去前一位,并且这种位数只有一位
1 public class Solution { 2 public int romanToInt(String s) { 3 // IMPORTANT: Please reset any member data you declared, as 4 // the same Solution instance will be reused for each test case. 5 int result = 0; 6 if (s == null || s.length() == 0) { 7 return result; 8 } 9 for (int i = 0; i < s.length(); i++) { 10 if (i > 0 && cToI(s.charAt(i)) > cToI(s.charAt(i - 1))) { 11 result += cToI(s.charAt(i)) - cToI(s.charAt(i - 1)) * 2; 12 } else { 13 result += cToI(s.charAt(i)); 14 } 15 } 16 return result; 17 } 18 19 private static int cToI(char c) { 20 switch (c) { 21 case 'I': 22 return 1; 23 case 'V': 24 return 5; 25 case 'X': 26 return 10; 27 case 'L': 28 return 50; 29 case 'C': 30 return 100; 31 case 'D': 32 return 500; 33 case 'M': 34 return 1000; 35 default: 36 return 0; 37 } 38 } 39 }