/**
* 用switch方法获得每个字符对应的数字
* Runtime: 3 ms, faster than 99.87%
* Memory Usage: 38.8 MB, less than 95.02%
*/
class Solution {
public int romanToInt(String s) {
char[] s_c = s.toCharArray();
int sum = 0, pre = 1000;
for (char c : s_c) {
int curr = getVal(c);
if (curr > pre)
sum -= 2 * pre;
sum += curr;
pre = curr;
}
return sum;
}
private int getVal(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;
}
}