https://leetcode.com/problems/roman-to-integer/description/?envType=study-plan-v2&envId=top-interview-150

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

Time Complexity: O(n)
Space: O(1)

爛題