首页 > 其他 > 详细

leetcode13 罗马数字转整数

时间:2019-10-28 21:00:44      阅读:76      评论:0      收藏:0      [点我收藏+]

偷懒,就在12的基础上改了一下

class Solution {
public:
    int romanToInt(string s) {
        map<int,string> calc = {{1000,"M"},{900,"CM"},{500,"D"},{400,"CD"},{100,"C"}, {90,"XC"},{50,"L"},{40,"XL"},{10,"X"},{9,"IX"},{5,"V"},{4,"IV"},{1,"I"}};
        map<int,string>::reverse_iterator iter=calc.rbegin();
        int ret=0;
        while(iter!=calc.rend())
        {
            int len=(iter->second).length();
            if(len>s.length())
                iter++;
            else if(s.substr(0,len)==iter->second){
                ret+=iter->first;
                s=s.substr(len);
            }
            else
                iter++;
        }
        return ret;
    }
};

 

leetcode13 罗马数字转整数

原文:https://www.cnblogs.com/lqerio/p/11755350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!