[LeetCode]Roman to Integer

看到此文,是否觉得体内洪荒之力爆发,饥渴难耐想吐槽、情不自禁想捐赠
本文为原创文章,尊重辛勤劳动,可以免费摘要、推荐或聚合,亦可完整转载,但完整转载需要标明原出处,违者必究。

支付宝微  信

Problem

Given a roman numeral, convert it to an integer.

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

Ideas

Finding the Law of Changing Roman Numbers into Arabic Numbers。

Solution

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

文章来源:胡小旭 => [LeetCode]Roman to Integer


这是一篇原创文章,如果您觉得有价值,可以通过捐赠来支持我的创作~
捐赠者会展示在博客的某个页面,钱将会用在有价值的地方,思考中...


分类: C/C++, 技术, 算法, 编程 | 标签: , , , , , , | 评论 | Permalink

发表评论

电子邮件地址不会被公开。