public class Solution {
public int romanToInt(String s) {
if (s==null) return -1;
int res = 0;
for (int i=s.length()-1; i>=0; i--) {
if (i>0 && transfer(s.charAt(i))>transfer(s.charAt(i-1))) {
res += transfer(s.charAt(i))-transfer(s.charAt(i-1));
i--;
} else res += transfer(s.charAt(i));
}
return res;
}
public int transfer(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;
}
return 0;
}
}
1. transfer method表示每个字母对应的int值.
回复删除2. IV, IX这种情况的存在.