题目
运行效果
第一次击败百分之百用户!!!!!!!!!!!!!激动的心颤抖的手!
思路
想着情况就几种,且特殊情况就六种。那么用switch case不久刚刚好。然后试着写了一下,简单题还是很好写的。就是没想到时间这么短。
代码
class Solution {
public:
int romanToInt(string s) {
int len=s.size()-1;
int res=0;
for(int i=0;i<=len; )
{
char a=s[i];
switch(a)
{
case 'I':
{
if((i+1)<=len)
{
if(s[i+1]=='V')
{
res=res+(5-1);
i=i+2;
break;
}
if(s[i+1]=='X')
{
res=res+(10-1);
i=i+2;
break;
}
}
res+=1;
i++;
break;
}
case 'V':
{
res+=5;
i++;
break;
}
case 'X':
{
if((i+1)<=len)
{
if(s[i+1]=='L')
{
res=res+(50-10);
i=i+2;
break;
}
if(s[i+1]=='C')
{
res=res+(100-10);
i=i+2;
break;
}
}
res+=10;
i++;
break;
}
case 'L':
{
res+=50;
i++;
break;
}
case 'C':
{
if((i+1)<=len)
{
if(s[i+1]=='D')
{
res=res+(500-100);
i=i+2;
break;
}
if(s[i+1]=='M')
{
res=res+(1000-100);
i=i+2;
break;
}
}
res+=100;
i++;
break;
}
case 'D':
{
res+=500;
i++;
break;
}
case 'M':
{
res+=1000;
i++;
break;
}
}
}
return res;
}
};