13.罗马数组转整数

和上一题反过来操作即可

class Solution {
public:
    int romanToInt(string s) {
        int bi[50];
        bi['I' - 'A'] = 1;
        bi['V' - 'A'] = 5;
        bi['X' - 'A'] = 10;
        bi['L' - 'A'] = 50;
        bi['C' - 'A'] = 100;
        bi['D' - 'A'] = 500;
        bi['M' - 'A'] = 1000;

        int l = s.length();
        int ans = 0;

        for (int i = 0; i<l; i++) {
            if (i+1 < l && bi[s[i+1]-'A'] > bi[s[i]-'A']) {
                ans += bi[s[i+1]-'A'] - bi[s[i]-'A'];
                i++;
            } else ans += bi[s[i]-'A'];
        }
        return ans;
    }
};

你可能感兴趣的:(#,Leetcode)