Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999
class Solution {public: int romanToInt(string s) { map<char, int> roman; roman['I'] = 1; roman['X'] = 10; roman['C'] = 100; roman['M'] = 1000; roman['V'] = 5; roman['L'] = 50; roman['D'] = 500; int len = s.size(); int sum = roman[s[len-1]]; //cout << sum << endl; char cur = s[len-1]; for (int i=len-2; i>=0; i--) { if (roman[s[i]] >= roman[cur]) { sum += roman[s[i]]; } else { sum -= roman[s[i]]; } //cout << sum << endl; cur = s[i]; } return sum; }};新闻热点
疑难解答