int romanToInt(string s) {
int res = 0;
if (s.size() == 0)return res;
map<int, string> mmap;
mmap[1] = "I";
mmap[4] = "IV";
mmap[5] = "V";
mmap[9] = "IX";
mmap[10] = "X";
mmap[40] = "XL";
mmap[50] = "L";
mmap[90] = "XC";
mmap[100] = "C";
mmap[400] = "CD";
mmap[500] = "D";
mmap[900] = "CM";
mmap[1000] = "M";
map<int, string>::reverse_iterator rit;
for (int j = 0; j < s.size(); ) {
for (rit = mmap.rbegin(); rit != mmap.rend(); ++rit) {
auto numb = rit->first;
auto symbol = rit->second;
int length = symbol.size();
string t = s.substr(j, length);
if (t == symbol) {
res += numb;
j += length;
break;
}
}
}
return res;
}
leetcode之Roman to Integer
最新推荐文章于 2024-07-25 11:15:54 发布