Skip to content

Commit ba374a1

Browse files
authored
Create 012. Integer to Roman.java
1 parent 4b37cd1 commit ba374a1

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

012. Integer to Roman.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// much inelegant!
2+
3+
// https://leetcode.com/problems/integer-to-roman
4+
public class Solution {
5+
public String intToRoman(int num) {
6+
String [] cLevels = new String[] {"I", "V", "X", "L", "C", "D", "M"};
7+
StringBuilder out = new StringBuilder();
8+
int i = 0;
9+
10+
while(num > 0) {
11+
int digit = num % 10;
12+
switch (digit) {
13+
case 1:
14+
case 2:
15+
case 3:
16+
out.insert(0, new String(new char[digit]).replace("\0", cLevels[0 + i * 2]));
17+
break;
18+
case 4:
19+
out.insert(0, cLevels[0 + i * 2] + cLevels[1 + i * 2]);
20+
break;
21+
case 5:
22+
out.insert(0, cLevels[1 + i * 2]);;
23+
break;
24+
case 6:
25+
case 7:
26+
case 8:
27+
out.insert(0, cLevels[1 + i * 2] + new String(new char[digit - 5]).replace("\0", cLevels[0 + i * 2]));
28+
break;
29+
case 9:
30+
out.insert(0, cLevels[0 + i * 2] + cLevels[2 + i * 2]);
31+
break;
32+
default:
33+
break;
34+
}
35+
num /= 10;
36+
i++;
37+
}
38+
return out.toString();
39+
}
40+
}

0 commit comments

Comments
 (0)