LeetCode 13: Roman to Integer

来源:互联网 发布:网络传真服务器 编辑:程序博客网 时间:2024/06/10 16:27

Roman to Integer

Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.

解题思路

关于罗马数字的表示规则请参考Integer to Roman。

代码如下:

class Solution {private:    int getInt(char roman) {        switch (roman) {            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;            default: return 0;        }    }public:    int romanToInt(string s) {        int sum = 0;        int slen = s.length();        for (int i = 0; i < slen; ++i) {            int v = getInt(s[i]);            bool add = true;            if (i < slen - 1 && (v < getInt(s[i+1]))) {                add = false;            }            sum += (add ?  v : -v);        }        return sum;    }};
0 0
原创粉丝点击