class Solution { public: int romanToInt(string s) { if (s.empty()) { return 0; } std::unordered_map<char, int> map{ {'I', 1}, {'V',5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000} }; int result = 0; int n = s.length(); int last = map[s[n - 1]]; result += last; for(int i = n - 2; i >=0; i--) { int num = map[s[i]]; if(num >= last) { result += num; } else { result -= num; } last = num; } return result; } };
No comments:
Post a Comment