描述:
将一个字符串表示的罗马数字转为整数,范围0~3999
解决:
如果后一个比前一个大,则表示减,没什么技巧。
map<char, int> m = {{'I', }, {'V', }, {'X', }, {'L', }, {'C', }, {'M', }, {'D', }};
int romanToInt(string s) {
int ret = ;
int last = ;
for (auto i : s) {
if (m[i] > last) {
ret = ret - last - last + m[i];
last = ;
}
else
ret = ret + m[i];
last = m[i];
}
return ret;
}