0%
思路:哈希表
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; } };
|