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

#13 Roman to Integer

时间:2015-04-16 23:22:05      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

Given a roman numeral, convert it to an integer.

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

 

class Solution {
public:
    int romanToInt(string s) {
        int num = 0;
        int n = s.size();
        for (int i = 0; i < n; ++i){
            if (i < n - 1 && toNumber(s[i]) < toNumber(s[i + 1])){
                num += toNumber(s[i + 1]) - toNumber(s[i]);
                ++i;
            }
            else{
                num += toNumber(s[i]);
            }
        }
        return num;
    }
    int toNumber(char ch) {
        switch (ch) {
        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;
        }
        return 0;
    }
};

 

#13 Roman to Integer

标签:

原文地址:http://www.cnblogs.com/Scorpio989/p/4433569.html

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