1 class Solution {
2 public:
3 int romanToInt(string s) {
4 // Note: The Solution object is instantiated only once and is reused by each test case.
5 string romans[30] = {"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"};
6 int nums[30] = {1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900,1000,2000,3000};
7 int i=0;
8 int len = s.length();
9 int rlt = 0;
10 while (i<len){
11 for (int j=29; j>=0; j--){
12 string tmp = romans[j];
13 if (s.substr(i,tmp.length()) == tmp){
14 i += tmp.length();
15 rlt += nums[j];
16 break;
17 }
18 }
19 }
20 return rlt;
21 }
22 };