题目地址: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; } };