题目: 罗马数字转整数,3999以内。
题解: 特殊处理一下 "I" "X" "C"就好,其他直接加上去就行了
class Solution { public: int romanToInt(string s) { int n = (int)s.size(); int ans = 0; for (int i = 0; i < n; ++i){ if (s[i] == 'I'){ if (i < n - 1){ if (s[i + 1] == 'V')ans += 4, i = i + 1; else if (s[i + 1] == 'X')ans += 9, i = i + 1; else ans += 1; } else{ ans += 1; } } else if (s[i] == 'X'){ if (i < n - 1){ if (s[i + 1] == 'L')ans += 40, i = i + 1; else if (s[i + 1] == 'C')ans += 90, i = i + 1; else ans += 10; } else{ ans += 10; } } else if (s[i] == 'C'){ if (i < n - 1){ if (s[i + 1] == 'D')ans += 400, i = i + 1; else if (s[i + 1] == 'M')ans += 900, i = i + 1; else ans += 100; } else{ ans += 100; } } else if (s[i] == 'V'){ ans += 5; } else if (s[i] == 'L'){ ans += 50; } else if (s[i] == 'D'){ ans += 500; } else{ ans += 1000; } } return ans; } };