From : https://leetcode.com/problems/roman-to-integer/
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, cur = 0, flag = 1, len = s.length();
map<char, int> table;
table['I'] = 1;
table['V'] = 5;
table['X'] = 10;
table['L'] = 50;
table['C'] = 100;
table['D'] = 500;
table['M'] = 1000;
while(cur < len) {
flag = 1;
char c = s[cur];
if((c=='I' || c=='X' || c=='C') && cur<len-1 && table[c]<table[s[cur+1]]) flag = -1;
num += flag*table[c];
cur++;
}
return num;
}
};