LeetCode 13:Roman to Integer

来源:互联网 发布:spss数据分析游戏 编辑:程序博客网 时间:2024/06/11 09:46

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

给定一个罗马数字,把它转变成整数。

测试数据在1~3999之间。


为什么之前跳过这道题,因为我懒得去了解罗马数字。。。

这里说一下如何分割:如果前一个数字大于后一个数字,那么则分割

如:48 = XLVIII = XL+VIII = 40 + 8 = 48

class Solution {public:    int romanToInt(string s) {        int sum=0;        for(int i=0;i<s.length();i++)        {            if(roTOnu(s[i])>=roTOnu(s[i+1]))                sum+=roTOnu(s[i]);            else            {                sum+=roTOnu(s[i+1])-roTOnu(s[i]);                i++;            }           }        return sum;    }    int roTOnu(char c)    {        switch(c)        {            case 'I': return 1;            case 'V': return 5;            case 'X': return 10;            case 'L': return 50;            case 'C': return 100;            case 'D': return 500;            case 'M': return 1000;        }    }};



0 0
原创粉丝点击