解题思想:进行遍历计算整数即可
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
dic = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
num = dic[s[0]]
temp = dic[s[0]]
for i in range(1,len(s)):
current = dic[s[i]]
if current <= temp:
num += current
temp = current
else:
num = num + current - temp - temp
temp = current
return num
class Solution {
public:
int romanToInt(string s) {
std::unordered_map<char, int> dic = {{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}};
int num = dic[s[0]];
int temp = dic[s[0]];
for (int i = 1; i < s.length(); ++i) {
int current = dic[s[i]];
if (current <= temp) {
num += current;
temp = current;
} else {
num = num + current - 2 * temp;
temp = current;
}
}
return num;
}
};