一. Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
Difficulty:EASY
TIME:7MIN
解法
这道题由于之前做过Integer to Roman,因此没有什么特别大的难度。
int romanToInt(string s) {
map<char,int> m;
m['M'] = 1000;
m['D'] = 500;
m['C'] = 100;
m['L'] = 50;
m['X'] = 10;
m['V'] = 5;
m['I'] = 1;
int num = 0;
for(int i = 0; i < s.size(); i++) {
if(i + 1 < s.size() && m[s[i + 1]] > m[s[i]]) {
num += m[s[i + 1]] - m[s[i]];
i++;
}
else
num += m[s[i]];
}
return num;
}
代码的时间复杂度为 O(n) 。