import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
public int romanToInt (String s) {
int sum = 0;
int preNum = getValue(s.charAt(0));
for(int i = 1;i<s.length();i++){
int value = getValue(s.charAt(i));
if(value>preNum){
sum-=preNum;
}else{
sum+=preNum;
}
preNum = value;
}
sum+=preNum;
return sum;
}
public int getValue(Character number) {
switch (number) {
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;
}
}
}
本题知识点分析:
1.字符串
2.数学模拟
本题解题思路分析:
1.比较两个相邻数字的大小,左小右大,做减法,反之做加法
2.最后一位数字肯定做加法
3.返回sum

京公网安备 11010502036488号