LeetCode——罗马数字转整数

题目地址:https://leetcode-cn.com/problems/roman-to-integer/

解题思路: 同理,写的比较丑。

class Solution {
public:
    int romanToInt(string s) {
        map<char,int > mp;
        map<char, int > ::iterator it;
        int index[7] = { 1,5,10,50,100,500,1000 };
        char tmp[7] = { 'I','V','X','L','C','D','M' };
        int sReturn = 0;
        for (int i = 0; i < 7; i++)
            mp[tmp[i]] = index[i];
        for (int i = 0; i < s.size(); i++) {
            if (i + 1 < s.size() && s[i] == 'I'&&s[i + 1] == 'V') {
                sReturn += 4;
                i++;
            }
            else if (i + 1 < s.size() && s[i] == 'I'&&s[i + 1] == 'X') {
                sReturn += 9;
                i++;
            }
            else if (i + 1 < s.size() && s[i] == 'X'&&s[i + 1] == 'L') {
                sReturn += 40;
                i++;
            }
            else if (i + 1 < s.size() && s[i] == 'X'&&s[i + 1] == 'C') {
                sReturn += 90;
                i++;
            }
            else if (i + 1 < s.size() && s[i] == 'C'&&s[i + 1] == 'D') {
                sReturn += 400;
                i++;
            }
            else if (i + 1 < s.size() && s[i] == 'C'&&s[i + 1] == 'M') {
                sReturn += 900;
                i++;
            }
            else
                sReturn += mp[s[i]];
        }
        return sReturn;
    }
};
原文地址:https://www.cnblogs.com/cc-xiao5/p/13372710.html