public class Mydemo1 {
public static int Romantoint(String s){
int result=0;
char[] chars= s.toCharArray();
for (int i=0;i<chars.length;i++){
switch (chars[i]){
case 'M':
result+=1000;
break;
case 'D':
result+=500;
break;
case 'C':
if (i+1<chars.length&&chars[i+1]=='M'){//确保数组不越界以及CM的特殊情况,以下几种情况同理
result+=900;
i++;//i++是为了跳过下一个字符,直接去寻找CM下一个字符
}else if (i+1<chars.length&&chars[i+1]=='D'){
result+=400;
i++;//同理
}else {
result+=100;
}
break;
case 'L':
result+=50;
break;
case 'X':
if (i+1<chars.length&&chars[i+1]=='L'){
result+=40;
i++;
}else if (i+1<chars.length&&chars[i+1]=='C'){
result+=90;
i++;
}else {
result+=10;
}
break;
case 'V':
result+=5;
break;
case 'I':
if (i==chars.length-1){//确保数组不越界
result+=1;
break;
}
if (chars[i+1]=='V'){
result+=4;
i++;
}else if (chars[i+1]=='X'){
result+=9;
i++;
}else {
result+=1;
}
break;
default:
break;
}
}
return result;
}
}
Leetcode题目刷题之罗马数字转整数java
最新推荐文章于 2024-03-14 13:30:00 发布