Roman to Integer

 1 class Solution {
 2     public:
 3     int switchRoman( char a )
 4     {
 5          if( a == 'M' )
 6             return 1000;
 7          else if( a == 'D' )
 8             return 500;
 9          else if( a == 'C' )
10             return 100;
11          else if( a == 'L' )
12             return 50;
13          else if( a == 'X' )
14             return 10;
15          else if( a == 'V' )
16             return 5;
17          else
18             return 1;
19     }
20     int romanToInt(string s) {
21         if( s == "" ) return 0;
22         
23         int n = 0;
24         int i = s.length()-1;
25         int t = switchRoman( s[i] );
26         for(int i=s.length()-1; i>=0; i--)
27         {
28             int k = switchRoman(s[i]);
29             if( t > k)
30                 n -= k;
31             else
32             {
33                 n += k;
34                 t = k; 
35             }
36         }
37         return n;
38     }
39 };

 

posted on 2013-09-07 18:11  jumping_grass  阅读(150)  评论(0)    收藏  举报

导航