罗马数字转数字,非常简单的语句,直接上代码:
class Solution {
public:
int romanToInt(string s) {
auto it = s.begin();
int rslt = 0;
while(it!=s.end())
{
switch (*it)
{
case 'I':
{
if ((it+1) != s.end())
if (*(it + 1) == 'V')
{
rslt += 4;
it += 2;
break;
}
else if (*(it + 1) == 'X')
{
rslt += 9;
it += 2;
break;
}
rslt += 1;
++it;
break;
}
case 'V':
{
rslt += 5;
++it;
break;
}
case 'X':
{
if ((it + 1) != s.end())
if (*(it + 1) == 'L')
{
rslt += 40;
it += 2;
break;
}
else if (*(it + 1) == 'C')
{
rslt += 90;
it += 2;
break;
}
++it;
rslt += 10;
break;
}
case 'L':
{
rslt += 50;
++it;
break;
}
case 'C':
{
if ((it + 1) != s.end())
if (*(it + 1) == 'D')
{
rslt += 400;
it+=2;
break;
}
else if (*(it + 1) == 'M')
{
rslt += 900;
it += 2;
break;
}
rslt += 100;
++it;
break;
}
case 'D':
{
rslt += 500;
++it;
break;
}
case 'M':
{
rslt +=1000;
++it;
break;
}
}
}
return rslt;
}
};