罗马数字_i++


罗马数字_i++_02

class Solution {
public int romanToInt(String s) {
int num = 0;
for(int i=0;i<s.length();i++)
{
// 分别判断每个字符对应的数值
switch(s.charAt(i))
{
case 'I' : num = num + 1;break;
case 'V' : num = num + 5;break;
case 'X' : num = num + 10;break;
case 'L' : num = num + 50;break;
case 'C' : num = num + 100;break;
case 'D' : num = num + 500;break;
case 'M' : num = num + 1000;break;
default: System.out.println("default");break;
}

//
if(i!=0)
{
// 如果是IV,或者 IX 这两种情况 下边类似
if(((s.charAt(i)=='V')||(s.charAt(i)=='X'))&&(s.charAt(i-1)=='I'))
num = num-1*2;
if(((s.charAt(i)=='L')||(s.charAt(i)=='C'))&&(s.charAt(i-1)=='X'))
num = num-10*2;
if(((s.charAt(i)=='D')||(s.charAt(i)=='M'))&&(s.charAt(i-1)=='C'))
num = num-100*2;
}
}
return num;
}
}