2.27日刷题记录 Roman to Integer(13)


根据罗马字母语法规则,建造map STL ,从后往前遍历string,遇到对应的就加上,遇到前面一个比后面一个小的就减去前面一个,非常巧妙的方法。
核心技术是map容器
class Solution { public: int romanToInt(string s) { map<char,int> dic={ {'M',1000}, {'D',500}, {'C',100}, {'L',50}, {'X',10}, {'V',5}, {'I',1} }; int pre=0; int res=0; for(int i=s.size()-1;i>-1;--i) { if(dic[s[i]]>=pre) { res+=dic[s[i]]; } else { res-=dic[s[i]]; } pre=dic[s[i]]; } return res; } };

浙公网安备 33010602011771号