Roman to Integer

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

C++:
01 class Solution {
02 public:
03     int romanToInt(string s) {
04         // Start typing your C/C++ solution below
05         // DO NOT write int main() function
06         int result=0;
07         int h=0;
08         int t=0;
09         int d=0;
10         int p=0;
11         while(s[p]!=)
12         {
13             if(s[p]==‘M’)
14             {
15                 result-=h;
16                 h=0;
17                 result+=1000;
18             }
19             else if(s[p]==‘D’)
20             {
21                 result-=h;
22                 h=0;
23                 result+=500;
24             }
25             else if(s[p]==‘C’)
26             {
27                 result-=t;
28                 t=0;
29                 h+=100;
30             }
31             else if(s[p]==‘L’)
32             {
33                 result-=t;
34                 t=0;
35                 result+=50;
36             }
37             else if(s[p]==‘X’)
38             {
39                 result-=d;
40                 d=0;
41                 t+=10;
42             }
43             else if(s[p]==‘V’)
44             {
45                 result-=d;
46                 d=0;
47                 result+=5;
48             }
49             else if(s[p]==‘I’)
50             {
51                 d++;
52             }
53             p++;
54         }
55         return result+h+t+d;
56     }
57 };
Advertisements
This entry was posted in Number trick, String. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s