public int romanToInt(String s) {
if(s.length() <= 0 ){
return 0;
}
int res = 0;
int len = s.length();
char[] c = s.toCharArray();
int index = 0;
while(index < len ){
//M
if(index <len && c[index] == 'M' ){
res += 1000;
index++;
continue;
}
//C*
if(c[index] == 'C'){
index++;
if(index <len &&c[index] == 'M' ){
res += 900;
index ++;
continue;
}else if(index <len &&c[index] == 'D' ){
res += 400;
index ++;
continue;
}else{
index--;
res += 100;
index++;
continue;
}
}
//D
if(index <len &&c[index] == 'D' ){
res += 500;
index++;
continue;
}
//X*
if(c[index] == 'X'){
index++;
if( index <len&&c[index] == 'C' ){
res += 90;
index ++;
continue;
}else if(index <len && c[index] == 'L' ){
res += 40;
index ++;
continue;
}
else{
index--;
res += 10;
index++;
continue;
}
}
//L
if(index <len && c[index] == 'L' ){
res += 50;
index++;
continue;
}
//I*
if(c[index] == 'I'){
index++;
if( index <len && c[index] == 'X' ){
res += 9;
index ++;
continue;
}else if( index <len&&c[index] == 'V'){
res += 4;
index ++;
continue;
}else{
index--;
res += 1;
index++;
continue;
}
}
//V
if(index <len && c[index] == 'V' ){
res += 5;
index++;
continue;
}
}
return res;
}
罗马数字转整数(java)
最新推荐文章于 2024-12-24 14:21:28 发布