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;
    }
};

 

posted @ 2021-02-27 15:51  章大佬  阅读(20)  评论(0)    收藏  举报