[LeetCode]13. Roman to Integer

原题链接:https://leetcode.com/problems/roman-to-integer/description/

[LeetCode]13. Roman to Integer

和上一题正好相反,将罗马数字变为int,知道罗马数字的规则后很好做

我的实现:

class Solution {
public:
    int romanToInt(string s) {
        int length = s.length();
        int result = 0;
        for (int i = 0; i < length; i++) {
            switch(s[i]) {
                case 'I':
                    if (i + 1 < length && (s[i+1] == 'V' || s[i+1] == 'X'))
                        result -= 1;
                    else
                        result += 1;
                    break;
                case 'V':
                    result += 5;
                    break;
                case 'X':
                    if (i + 1 < length && (s[i+1] == 'L' || s[i+1] == 'C'))
                        result -= 10;
                    else
                        result += 10;
                    break;
                case 'L':
                    result += 50;
                    break;
                case 'C':
                    if (i + 1 < length && (s[i+1] == 'D' || s[i+1] == 'M'))
                        result -= 100;
                    else
                        result += 100;
                    break;
                case 'D':
                    result += 500;
                    break;
                case 'M':
                    result += 1000;
                    break;
            }
        }
        
        return result;
    }
};