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

Posted biubiuwham

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode ---13 罗马数字转整数相关的知识,希望对你有一定的参考价值。

首先建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 罗马数字转整数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 13 罗马数字转整数[找规律 多条件判断] HERODING的LeetCode之路

LeetCode刷题13-简单-罗马数字转整数

LeetCode刷题13-简单-罗马数字转整数

LeetCode 13. 罗马数字转整数 java 两种解法

LeetCode 13. 罗马数字转整数 java 两种解法

LeetCode13.罗马数字转整数(Python3)