1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution { public int romanToInt(String s) { int result = 0, i = 0, n = s.length(); while (i < n) { char c = s.charAt(i); if (c == 'I' && i + 1 < n && s.charAt(i + 1) == 'V') { result += 4; i += 2; } else if (c == 'I' && i + 1 < n && s.charAt(i + 1) == 'X') { result += 9; i += 2; } else if (c == 'X' && i + 1 < n && s.charAt(i + 1) == 'L') { result += 40; i += 2; } else if (c == 'X' && i + 1 < n && s.charAt(i + 1) == 'C') { result += 90; i += 2; } else if (c == 'C' && i + 1 < n && s.charAt(i + 1) == 'D') { result += 400; i += 2; } else if (c == 'C' && i + 1 < n && s.charAt(i + 1) == 'M') { result += 900; i += 2; } else { if (c == 'I') result += 1; else if (c == 'V') result += 5; else if (c == 'X') result += 10; else if (c == 'L') result += 50; else if (c == 'C') result += 100; else if (c == 'D') result += 500; else if (c == 'M') result += 1000; i++; } } return result; } }
|