13. Roman to Integer
int romanToInt(char* s) {
int dic[26];
dic['I'-'A'] = 1;
dic['V'-'A'] = 5;
dic['X'-'A'] = 10;
dic['L'-'A'] = 50;
dic['C'-'A'] = 100;
dic['D'-'A'] = 500;
dic['M'-'A'] = 1000;
int n = 0;
for(int i = 0;s[i];i++){
if(s[i+1] && ((s[i] == 'I' && (s[i+1] == 'V' || s[i+1] == 'X'))
||(s[i] == 'X' && (s[i+1] == 'L' || s[i+1] == 'C'))
||(s[i] == 'C' && (s[i+1] == 'D' || s[i+1] == 'M')))){
n += dic[s[i+1]-'A'] - dic[s[i]-'A'];
i++;
}
else n += dic[s[i]-'A'];
}
return n;
}
Email:JingwangLi@outlook.com