LeetCode 13. Roman to Integer

来源:互联网 发布:mac pro 魔兽世界 编辑:程序博客网 时间:2024/06/02 10:02

Given a roman numeral, convert it to an integer.

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

与之前的正好相反。
LeetCode 12. Integer to Roman

class Solution {public:    int romanToInt(string s) {        /*        M:1000;D:500;C:100;L:50;X:10;V:5;I:1        */        int len =s.size();        int m[30];        char n[30];        memset(n,0,sizeof(n));        memset(m,0,sizeof(m));        m['M'-'A'] = 1000;n['M'-'A'] = 'C';        m['D'-'A'] = 500;n['D'-'A'] = 'C';        m['C'-'A'] = 100;n['C'-'A'] = 'X';        m['L'-'A'] = 50;n['L'-'A'] = 'X';        m['X'-'A'] = 10;n['X'-'A'] = 'I';        m['V'-'A'] = 5;n['V'-'A'] = 'I';        m['I'-'A'] = 1;        if(len==0){            return 0;        }        else{            int i;            int ans = 0;            for(i = len-1;i>=0;i--){                ans += m[s[i]-'A'];                if(n[s[i]-'A']!=0&&i!=0) {                    if(s[i-1]==n[s[i]-'A']){                        ans-=m[s[i-1]-'A'];                        i--;                    }                }            }            return ans;        }    }};
原创粉丝点击