Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
class Solution {
public:
    int romanToInt(string s) {
        vector<string> NumStr[4]={
            { "I","II","III", "IV", "V", "VI", "VII", "VIII", "IX"},
            { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},
            { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},
            { "M", "MM", "MMM", }
        };
        int ret=0;
        int d_pos=3;
        int s_pos=0;
        int s_len=s.length();
        while(( s_pos<s_len) && (d_pos>=0)) {            
            for(int i=NumStr[d_pos].size()-1;i>=0;i--) {
                int d_length = NumStr[d_pos][i].length();
                if (NumStr[d_pos][i]==s.substr(s_pos,d_length)) {
                    ret += (pow(10,d_pos)*(i+1));
                    s_pos += d_length;
                    break;
                }
            }
            d_pos--;
        }
        return ret;
    }
};

...