提交代码:
int romanToInt(char* s) {
int i,p = 0,numslen=0;
int sum = 0;
int* nums = (int*)malloc(30 * sizeof(int));
while (s[p] != '\0')
{
if (s[p] == 'M')
nums[p] = 1000;
else if (s[p] == 'D')
nums[p] = 500;
else if (s[p] == 'C')
nums[p] = 100;
else if (s[p] == 'L')
nums[p] = 50;
else if (s[p] == 'X')
nums[p] = 10;
else if (s[p] == 'V')
nums[p] = 5;
else if (s[p] == 'I')
nums[p] = 1;
p++;
}
numslen=p;
for (i = 0; i < numslen; i++)
{
//如果前一个数大于当前数,说明当前数是要减的
if (nums[i + 1] > nums[i])
sum -= nums[i];
else
sum += nums[i];
}
return sum;
}
运行结果: