码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode ---13 罗马数字转整数

时间:2019-01-18 12:57:22      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:映射关系   map   for   span   temp   tco   直接   罗马   遍历   

首先建map映射关系,将阿拉伯数与罗马数字一一对应。然后建立两个值,一个用来得到现在遍历的值,另一个用于保存上一个值,从整个数组最后一位开始向前遍历,当当前数字比上一个数大时,直接加上,当当前值比上一个小时,直接减去。最后遍历结束返回、

  int romanToInt(string s) {
        int sum=0;
        map<char,int>m;
        m[I]=1;
        m[V]=5;
        m[X]=10;
        m[L]=50;
        m[C]=100;
        m[D]=500;
        m[M]=1000;
        int temp=0;
        int temp1=0;
        for(int i=s.length()-1;i>=0;i--)
        {
            temp=m[s[i]];
            if(temp>=temp1)
            {
                sum+=temp;
                temp1=temp;
            }
            else
            {
                sum-=temp;
                temp1=temp;
            }
        }
        return sum;
    }

 

leetcode ---13 罗马数字转整数

标签:映射关系   map   for   span   temp   tco   直接   罗马   遍历   

原文地址:https://www.cnblogs.com/biubiuWham/p/10287062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!