【LeetCode】Roman to Integer

来源:互联网 发布:淘宝开放平台有什么用 编辑:程序博客网 时间:2024/04/30 11:12

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 ret = 0;    for (int i = 0; i < s.size(); i++)    {    char c = s[i];    switch(c)    {    case 'I':    if (i < s.size() -1)    {    if(s[i+1] == 'V')    {    ret += 4;    i++;    }    else if(s[i+1] == 'X')    {    ret += 9;    i++;    }    else    ret += 1;    }        else    ret += 1;    break;    case 'V':    ret += 5;    break;    case 'X':    if (i < s.size() -1)    {    if(s[i+1] == 'L')    {    ret += 40;    i++;    }    else if(s[i+1] == 'C')    {    ret += 90;    i++;    }    else    ret += 10;    }        else    ret += 10;    break;    case 'L':    ret += 50;    break;    case 'C':    if (i < s.size() -1)    {    if(s[i+1] == 'D')    {    ret += 400;    i++;    }    else if(s[i+1] == 'M')    {    ret += 900;    i++;    }    else    ret += 100;    }        else    ret += 100;    break;    case 'D':    ret += 500;    break;    case 'M':    ret += 1000;    break;    default:    break;    }    }    return ret;     }};
关键在于找出三类(六种)特殊的排列。

0 0
原创粉丝点击