13. Roman to Integer

题目:

13. Roman to Integer

13. Roman to Integer

解答:

就是12题的逆运算

代码:

class Solution {
public:
    int romanToInt(string s) {
        int result = 0, len = s.size(), index = 0;
        while(index < len && s[index] == 'M'){
            result += 1000;
            index++;
        }
        if(index < len - 1 && s[index] == 'C' && s[index+1] == 'M'){
            result += 900;
            index += 2;
        }
        if(index < len && s[index] == 'D'){
            result += 500;
            index++;
        }
        if(index < len -1 && s[index] == 'C' && s[index+1] == 'D'){
            result += 400;
            index += 2;
        }
        while(index < len && s[index] == 'C'){
            result += 100;
            index++;
        }
        if(index < len - 1 && s[index] == 'X' && s[index+1] == 'C'){
            result += 90;
            index += 2;
        }
        if(index < len && s[index] == 'L'){
            result += 50;
            index++;
        }
        if(index < len -1 && s[index] == 'X' && s[index+1] == 'L'){
            result += 40;
            index += 2;
        }
        while(index < len && s[index] == 'X'){
            result += 10;
            index++;
        }
        if(index < len - 1 && s[index] == 'I' && s[index+1] == 'X'){
            result += 9;
            index += 2;
        }
        if(index < len && s[index] == 'V'){
            result += 5;
            index++;
        }
        if(index < len -1 && s[index] == 'I' && s[index+1] == 'V'){
            result += 4;
            index += 2;
        }
        while(index < len && s[index] == 'I'){
            result += 1;
            index++;
        }
        return result;
    }
};

更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)