思路:
1.因为只有那六种情况会出现小的字母在大的字母前面(4,9,40,90,400,900),即我们先把字符串中的那六种情况替换成a,b,c,d,e,f.
2.建一个映射表
3.从左向右,累加
代码:
class Solution {
public int romanToInt(String s) {
s = s.replace("IV","a");
s = s.replace("IX","b");
s = s.replace("XL","c");
s = s.replace("XC","d");
s = s.replace("CD","e");
s = s.replace("CM","f");
int sum = 0;
for(int i = 0; i < s.length(); i++){
char temp = s.charAt(i);
switch(temp){
case 'I': sum += 1;break;
case 'a': sum += 4;break;
case 'V': sum += 5;break;
case 'b': sum += 9;break;
case 'X': sum += 10;break;
case 'c': sum += 40;break;
case 'L': sum += 50;break;
case 'd': sum += 90;break;
case 'C': sum += 100;break;
case 'e': sum += 400;break;
case 'D': sum += 500;break;
case 'f': sum += 900;break;
case 'M': sum += 1000;break;
}
}
return sum;
}
}