题目
跟12正好反过来,给一个罗马数字,转化为整数
源码
int romanToInt(string s) {
map<char, int> mmp;
mmp['I'] = 1;
mmp['V'] = 5;
mmp['X'] = 10;
mmp['L'] = 50;
mmp['C'] = 100;
mmp['D'] = 500;
mmp['M'] = 1000;
int res = 0;
int ssize = s.size();
for(int i=0;i<ssize-1;i++){
if(mmp[s[i]]<mmp[s[i+1]]) res = res-mmp[s[i]];
else res = res + mmp[s[i]];
}
res = res + mmp[s[ssize-1]];
return res;
}
想法
用map<int, char>就不行,map<char, int>就行。