public class Solution { public int romanToInt(String s) { int result = 0; if(s == null || s.length() == 0){ return result; } for(int i = 0; i< s.length(); i++){ if(i > 0 && cToI(s.charAt(i)) > cToI(s.charAt(i-1))){ // IV(4) result = 1 + 5 - 1*2 = 4 result += cToI(s.charAt(i)) - cToI(s.charAt(i-1))*2; }else{ result += cToI(s.charAt(i)); } } return result; } private static int cToI(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; } } }