You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
1 year ago
|
Hi, I am solving a problem on leetcode: https://leetcode.com/problems/roman-to-integer/
|
||
|
And my code is failing the test:.. The code is: `int romanToInt(char * s){
|
||
|
int stringSize;
|
||
|
stringSize = strlen(s);
|
||
|
int ans, counter;
|
||
|
int pos_I=0, pos_V=0, pos_X=0, pos_L=0, pos_C=0, pos_D=0, pos_M=0;
|
||
|
ans = 0;
|
||
|
counter = 0;
|
||
|
for(counter=0; counter<stringSize; counter++)
|
||
|
{
|
||
|
if (s[counter] == 'I')
|
||
|
{
|
||
|
//store the position of I
|
||
|
pos_I = counter;
|
||
|
ans = ans + 1;
|
||
|
|
||
|
}
|
||
|
else if (s[counter] == 'V')
|
||
|
{
|
||
|
pos_V = counter;
|
||
|
ans = ans + 5;
|
||
|
if (counter >=1 )
|
||
|
{
|
||
|
if ((s[counter-1] == 'I') && counter >= 1)
|
||
|
{
|
||
|
ans = ans - 1;
|
||
|
} }
|
||
|
}
|
||
|
else if (s[counter] == 'X')
|
||
|
{
|
||
|
pos_X = counter;
|
||
|
ans = ans + 10;
|
||
|
if (counter >=1 )
|
||
|
{
|
||
|
if ((s[counter-1] == 'I') && (counter >=1))
|
||
|
{
|
||
|
ans = ans - 1;
|
||
|
} }
|
||
|
}
|
||
|
else if (s[counter] == 'L')
|
||
|
{
|
||
|
pos_L = counter;
|
||
|
ans = ans + 50;
|
||
|
if (counter >= 1)
|
||
|
{
|
||
|
if ((s[counter-1] == 'X') && (counter >= 1))
|
||
|
{
|
||
|
ans = ans - 10;
|
||
|
} }
|
||
|
}
|
||
|
else if (s[counter] == 'C')
|
||
|
{
|
||
|
pos_C = counter;
|
||
|
ans = ans + 100;
|
||
|
if (counter >= 1)
|
||
|
{
|
||
|
if ((s[counter-1] == 'X') && (counter>=1))
|
||
|
{
|
||
|
ans = ans - 10;
|
||
|
}}
|
||
|
}`
|