class Solution
{
public:
int romanToInt(string s)
{
auto len=s.length();
int num(0);
for(int i(0);i<len-1;++i)
{
switch(s[i])
{
case 'I':
{
if(s[i+1]!='V'&&s[i+1]!='X'){num+=1;}
else if(s[i+1]=='V'){i++;num+=4;}
else{i++;num+=9;}
break;
}
case 'V':{num+=5;break;}
case 'X':
{
if(s[i+1]!='L'&&s[i+1]!='C'){num+=10;}
else if(s[i+1]=='L'){i++;num+=40;}
else{i++;num+=90;}
break;
}
case 'L':{num+=50;break;}
case 'C':
{
if(s[i+1]!='D'&&s[i+1]!='M'){num+=100;}
else if(s[i+1]=='D'){i++;num+=400;}
else{i++;num+=900;}
break;
}
case 'D':{num+=500;break;}
case 'M':{num+=1000;break;}
}
if(i==len-1)
{
return num;
}
}
switch(s[len-1])
{
case 'I':{num+=1;break;}
case 'V':{num+=5;break;}
case 'X':{num+=10;break;}
case 'L':{num+=50;break;}
case 'C':{num+=100;break;}
case 'D':{num+=500;break;}
case 'M':{num+=1000;break;}
}
return num;
}
};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)