1 class Solution { 2 public: 3 int romanToInt(string s) { 4 int len = s.size(), result = 0; 5 for (int i = 0; i < len; i++) { 6 switch(s[i]) { 7 case 'M': 8 result += 1000; 9 break; 10 case 'D': 11 result += 500; 12 break; 13 case 'C': 14 if (i < len-1 && s[i+1] == 'M') { 15 result += 900; 16 i++; 17 } else if (i < len-1 && s[i+1] == 'D') { 18 result += 400; 19 i++; 20 } else { 21 result += 100; 22 } 23 break; 24 case 'L': 25 result += 50; 26 break; 27 case 'X': 28 if (i < len-1 && s[i+1] == 'C') { 29 result += 90; 30 i++; 31 } else if (i < len-1 && s[i+1] == 'L') { 32 result += 40; 33 i++; 34 } else { 35 result += 10; 36 } 37 break; 38 case 'V': 39 result += 5; 40 break; 41 case 'I': 42 if (i < len-1 && s[i+1] == 'X') { 43 result += 9; 44 i++; 45 } else if (i < len-1 && s[i+1] == 'V') { 46 result += 4; 47 i++; 48 } else result += 1; 49 break; 50 } 51 } 52 return result; 53 } 54 };