1. 程式人生 > >LeetCode :C語言 13羅馬數字轉整數

LeetCode :C語言 13羅馬數字轉整數

這道題寫的時候思路也比較清晰,唯一有點困惑的是判斷字串的長度。(用了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來簡化操作。