Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
class Solution {
public:
int romanToInt(string s)
{
int num= s.size();
<span style="white-space:pre"> </span>int p_value = 0;
<span style="white-space:pre"> </span>int value = 0;
<span style="white-space:pre"> </span>int n_value = 0;
for(int i=0 ;i<num;i++)
<span style="white-space:pre"> </span>{switch(s[i])
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>case 'I' : n_value= 1; break;
<span style="white-space:pre"> </span>case 'X' : n_value= 10; break;
<span style="white-space:pre"> </span>case 'C' : n_value= 100; break;
<span style="white-space:pre"> </span>case 'M' : n_value= 1000; break;
<span style="white-space:pre"> </span>case 'V' : n_value= 5; break;
<span style="white-space:pre"> </span>case 'L' : n_value= 50; break;
<span style="white-space:pre"> </span>case 'D' : n_value= 500; break;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>if(n_value <= p_value)
<span style="white-space:pre"> </span> value += n_value;
<span style="white-space:pre"> </span>else
<span style="white-space:pre"> </span>value = value + n_value - 2*p_value;
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>p_value = n_value;
<span style="white-space:pre"> </span>}
return value;
}
};