Leetcode-13. 罗马数字转整数

13. 罗马数字转整数

思路:哈希表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Solution {
public:
int romanToInt(string s) {
int i,j;
int sum=0;
map<string,int> m;
m["I"]=1;
m["V"]=5;
m["IV"]=4;
m["IX"]=9;
m["X"]=10;
m["XL"]=40;
m["L"]=50;
m["XC"]=90;
m["C"]=100;
m["CD"]=400;
m["D"]=500;
m["CM"]=900;
m["M"]=1000;
i=0;
for(;i<s.length();)
{
if((i<s.length()-1)&&(m.find(s.substr(i,2))!=m.end()))
{
sum+=m[s.substr(i,2)];
i+=2;
}
else
{
sum+=m[s.substr(i,1)];
i++;
}
}
return sum;
}
};