题目链接:https://leetcode-cn.com/problems/roman-to-integer/description/
这道题写的时候思路也比较清晰,唯一有点困惑的是判断字符串的长度。(用了while循环来判断。)
int charToInt(char ch)
{
switch(ch)
{
case 'I':return 1;
case 'V':return 5;
case 'X':return 10;
case 'L':return 50;
case 'C':return 100;
case 'D':return 500;
case 'M':return 1000;
default:return 0;
}
}
int romanToInt(char* s)
{
int count = 0;
int sum = 0;
if(s==NULL)
return 0;
while(s[count]!='\0')
{
if(charToInt(s[count])<charToInt(s[count+1]))
{
sum = sum + charToInt(s[count+1]) - charToInt(s[count]);
count++;
}
else
sum = sum + charToInt(s[count]);
count++;
}
return sum;
}
总结:用C写的话还是有很多不便吧,作为门外汉的我觉定之后先使用C++的STL来简化操作。