mirror of
https://github.com/arkorty/LeetCode.git
synced 2026-03-17 16:51:46 +00:00
Initial commit
This commit is contained in:
55
Easy/roman-to-integer/Solution.java
Normal file
55
Easy/roman-to-integer/Solution.java
Normal file
@@ -0,0 +1,55 @@
|
||||
class RomanToInteger {
|
||||
int applyOffset(int value, int last_value, int offset) {
|
||||
if (last_value > value) {
|
||||
return offset - value;
|
||||
} else {
|
||||
return offset + value;
|
||||
}
|
||||
}
|
||||
|
||||
public int romanToInt(String roman) {
|
||||
int integer = 0;
|
||||
int last_value = 0;
|
||||
for (int x = roman.length() - 1; x >= 0; x--) {
|
||||
char convertToDecimal = roman.charAt(x);
|
||||
|
||||
switch (convertToDecimal) {
|
||||
case 'M':
|
||||
integer = applyOffset(1000, last_value, integer);
|
||||
last_value = 1000;
|
||||
break;
|
||||
|
||||
case 'D':
|
||||
integer = applyOffset(500, last_value, integer);
|
||||
last_value = 500;
|
||||
break;
|
||||
|
||||
case 'C':
|
||||
integer = applyOffset(100, last_value, integer);
|
||||
last_value = 100;
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
integer = applyOffset(50, last_value, integer);
|
||||
last_value = 50;
|
||||
break;
|
||||
|
||||
case 'X':
|
||||
integer = applyOffset(10, last_value, integer);
|
||||
last_value = 10;
|
||||
break;
|
||||
|
||||
case 'V':
|
||||
integer = applyOffset(5, last_value, integer);
|
||||
last_value = 5;
|
||||
break;
|
||||
|
||||
case 'I':
|
||||
integer = applyOffset(1, last_value, integer);
|
||||
last_value = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return integer;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user