无脑map
class Solution {
public:
int romanToInt(string s) {
std::map<string, int> M;
M["I"] = 1;
M["V"] = 5;
M["X"] = 10;
M["L"] = 50;
M["C"] = 100;
M["D"] = 500;
M["M"] = 1000;
M["IV"] = 4;
M["IX"] = 9;
M["XL"] = 40;
M["XC"] = 90;
M["CD"] = 400;
M["CM"] = 900;
int head = 0, end = s.length(), result = 0, n = 0;
while(head < end) {
n = M[s.substr(head,2)];
if (n) {
result += n;
head+=2;
}
else {
result += M[s.substr(head,1)];
head++;
}
}
return result;
}
};