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

[Leetcode] 13 - Roman to Integer

时间:2015-01-12 16:38:48      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

原题链接:https://oj.leetcode.com/problems/roman-to-integer/

比较简单的题,代码应该还可以稍微优化,更generic一些。


class Solution {
public:
    int romanToInt(string s) {
        if (s.size() == 0) return 0;
        
        int num = 0;
        for (int i = s.size() - 1; i >= 0; --i) {
            switch (s[i]) {
                case 'I':
                    ++num;
                    if (i + 1 < s.size() && (s[i + 1] == 'X' || s[i + 1] == 'V')) {
                        num -= 2;
                    }
                    break;
                case 'V':
                    num += 5;
                    break;
                case 'X':
                    num += 10;
                    if (i + 1 < s.size() && (s[i + 1] == 'L' || s[i + 1] == 'C')) {
                        num -= 20;
                    }
                    break;
                case 'L':
                    num += 50;
                    break;
                case 'C':
                    num += 100;
                    if (i + 1 < s.size() && (s[i + 1] == 'D' || s[i + 1] == 'M')) {
                        num -= 200;
                    }
                    break;
                case 'D':
                    num += 500;
                    break;
                case 'M':
                    num += 1000;
                    break;
            }
        }
        
        return num;
    }
};




[Leetcode] 13 - Roman to Integer

标签:

原文地址:http://blog.csdn.net/algorithmengine/article/details/42642961

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