https://leetcode.com/problems/roman-to-integer/#/description
思路解析:
【罗马数字】
1~9: {“I”, “II”, “III”, “IV”, “V”, “VI”, “VII”, “VIII”, “IX”};
10~90: {“X”, “XX”, “XXX”, “XL”, “L”, “LX”, “LXX”, “LXXX”, “XC”};
100~900: {“C”, “CC”, “CCC”, “CD”, “D”, “DC”, “DCC”, “DCCC”, “CM”};
1000~3000: {“M”, “MM”, “MMM”}.
代码如下:
public class Solution {
public int romanToInt(String s) {
char[] c=s.toCharArray();
int result=Ro2Num(c[0]);
for(int i=1;i<c.length;i++)
{
if(Ro2Num(c[i-1])<Ro2Num(c[i]) )
{
result+=Ro2Num(c[i])-2*Ro2Num(c[i-1]);
}else{
result+=Ro2Num(c[i]);
}
}
return result;
}
public int Ro2Num(char ch)
{
switch (ch) {
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;
}
}