题目很简单直接用map处理就行,但记住不要用string类型处理,因为char转string很麻烦,内部可能造成莫名其妙的错误,直接char类型作为map的索引即可
class Solution {
public:
int romanToInt(string s) {
int res=0;
map<char,int>m;
m[‘I’]=1;
// m[“IV”]=4;
// m[“IX”]=9;
m[‘V’]=5;
m[‘X’]=10;
m[‘L’]=50;
m[‘C’]=100;
m[‘D’]=500;
m[‘M’]=1000;
// m[“XL”]=40;
// m[“XC”]=90;
// m[“CD”]=400;
// m[“CM”]=900;
for(int i=0;i<s.length();i++)
{
if(i!=s.length()-1&&m[s[i]]<m[s[i+1]])
{
res-=m[s[i]];
}
else res+=m[s[i]];
}
return res;
}
};