-
Notifications
You must be signed in to change notification settings - Fork 0
/
romanToNumeric.java
105 lines (89 loc) · 2.43 KB
/
romanToNumeric.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import java.util.*;
import java.lang.*;
import java.io.*;
class romanToNumeric
{
public static boolean check(String numAsString){
switch(numAsString) {
case "I" :
case "IV" :
case "V" :
case "IX" :
case "X" :
case "XL" :
case "L" :
case "XC" :
case "C" :
case "CD" :
case "D" :
case "CM" :
case "M" :
return true;
default :
return false;
}
}
public static int getkey(String numAsString){
switch(numAsString) {
case "I" :
return 1;
case "IV" :
return 4;
case "V" :
return 5;
case "IX" :
return 9;
case "X" :
return 10;
case "XL" :
return 40;
case "L" :
return 50;
case "XC" :
return 90;
case "C" :
return 100;
case "CD" :
return 400;
case "D" :
return 500;
case "CM" :
return 900;
case "M" :
return 1000;
default :
return 0;
}
}
public static void main (String[] args)
{
//code
Scanner in = new Scanner(System.in);
int t = in.nextInt();
while(t-->0){
String roman = in.next();
int num = 0 ;
if(roman.length()==0)
System.out.println("0");
else
{
int l = roman.length();
for(int i = 0; i<l;i++){
if(i!=l-1){
if(check(roman.substring(i,i+2))){
num = num +getkey(roman.substring(i,i+2));
i++;
}
else{
num = num +getkey(roman.substring(i,i+1));
}
}
else if(i==l-1){
num = num +getkey(roman.substring(i,i+1));
}
}
}
System.out.println(num);
}
}
}