Skip to content

Commit 7697b9b

Browse files
Vedant KanabarVedant Kanabar
Vedant Kanabar
authored and
Vedant Kanabar
committed
Create 0012-roman-to-integer.c
1 parent 44b0e00 commit 7697b9b

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

c/0013-roman-to-integer.c

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
int value(char c){
2+
3+
switch(c) {
4+
case 'I': return 1;
5+
case 'V': return 5;
6+
case 'X': return 10;
7+
case 'L': return 50;
8+
case 'C': return 100;
9+
case 'D': return 500;
10+
case 'M': return 1000;
11+
default: return 0;
12+
}
13+
}
14+
15+
int romanToInt(char * s){
16+
int len = 0;
17+
int sum = 0;
18+
int valueCurrent, valueNext;
19+
20+
len = strlen(s);
21+
22+
for(int i=0; i<len; i++) {
23+
24+
valueCurrent = value(s[i]);
25+
26+
if((i+1) < len) {
27+
valueNext = value(s[i+1]);
28+
}
29+
else {
30+
valueNext = 0;
31+
}
32+
33+
if(valueNext > valueCurrent) {
34+
sum = sum - valueCurrent;
35+
}
36+
else {
37+
sum = sum + valueCurrent;
38+
}
39+
}
40+
41+
return sum;
42+
}

0 commit comments

Comments
 (0)