程式語言 - LeetCode - C++ - 13. Roman to Integer



參考資訊:
https://algo.monster/liteproblems/13

題目:


解答:

class Solution {
public:
    int romanToInt(string s) {
        unordered_map<char, int> v = {
            { 'I', 1 },
            { 'V', 5 },
            { 'X', 10 },
            { 'L', 50 },
            { 'C', 100 },
            { 'D', 500 },
            { 'M', 1000 }
        };

        int r = v[s.back()];
        for (int i = 0; i < s.size() - 1; ++i) {
            int m = v[s[i]] < v[s[i + 1]] ? -1 : 1;

            r += m * v[s[i]];
        }

        return r;
    }
};