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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
public class Roman2Integer { public int romanToInt(String s) { if (s == null || s.isEmpty()) { return 0; } int result = 0; for (int i = 0; i < s.length(); i++) { if (i > 0 && c2i(s.charAt(i)) > c2i(s.charAt(i - 1))) { result += (c2i(s.charAt(i)) - 2 * c2i(s.charAt(i - 1))); } else { result += c2i(s.charAt(i)); } } return result; } private int c2i(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; } } }
|