问题描述
Java
class Solution {
public int romanToInt(String s) {
if(s == null || s.length() == 0) return 0;
int len = s.length();
char[] arr = s.toCharArray();
int pre = getValue(arr[0]);
int ans = 0;
for(int i = 1;i < len;i++){
int cur = getValue(arr[i]);
//如果前一个字符比当前字符要大,那就加上前字符
if(pre >= cur){
ans += pre;
}else {
ans -= pre;
}
pre = cur;
}
ans += pre;
return ans;
}
public int getValue(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;
}
}