您的位置:首页 > 其它

leetcode Roman to Integer

2015-06-12 12:51 399 查看
题目链接这里

这个题目难度倒是没有。但是特别的繁琐。

要注意几个情况:

ICX都可以出现在左边。特别要注意的是X这个情况,特别是它左边是C的时候。

public class Solution {
public static void main(String args[])
{
System.out.println(romanToInt("MMCCCXCIX"));
}
public static int romanToInt(String s) {
int result=0;
int current=0;
int n=s.length();

char temp='0';
char pre='0';
int i;
for(i=0;i<n;i++)
{
if(i!=0)
{
pre=temp;
}
temp=s.charAt(i);
switch (temp) {
case 'I':
if(pre!='I')
{
result+=current;
current=1;
}
else
{
current+=1;
}
break;
case 'V':
result+=5;
if(pre!='I')
{
result+=current;
}
else
{
result-=current;
}
current=0;
break;
case 'X':

if(pre=='I')
{
result+=10;
result-=current;
current=0;
}
else if(pre=='C')
{

result+=current;
current=10;
}
else
{
current+=10;
}
break;
case 'L':
if(pre=='I'||pre=='X')
{
result-=current;

}
else
{
result+=current;
}
result+=50;
current=0;
break;
case 'C':
if(pre=='I'||pre=='X')
{
result+=100;
result-=current;
current=0;
}
else
{
current+=100;
}
break;
case 'D':
result+=500;
result-=current;
current=0;
break;
case 'M':
result+=1000;
result-=current;
current=0;
break;
}

}

return result+current;
}
}


错误“MMCCCXCIX”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: