Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
简单的字符转化,将读取的字符每一位转化为对应数字,再计算。时间:58ms
代码如下:
class Solution { public: int romanToInt(string s) { int num = 0; int n = s.size(); for (int i = 0; i < n; ++i){ if (i < n - 1 && toNumber(s[i]) < toNumber(s[i + 1])){ num += toNumber(s[i + 1]) - toNumber(s[i]); ++i; } else{ num += toNumber(s[i]); } } return num; } int toNumber(char ch) { switch (ch) { case 'I': return 1; case 'V': return 5; case 'X': return 10; case 'L': return 50; case 'C': return 100; case 'D': return 500; case 'M': return 1000; } return 0; } };