Skip to content

Instantly share code, notes, and snippets.

@gentry-tran
Created May 14, 2016 00:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gentry-tran/06d06a5bf36e09c13cdd804da518e8c6 to your computer and use it in GitHub Desktop.
Save gentry-tran/06d06a5bf36e09c13cdd804da518e8c6 to your computer and use it in GitHub Desktop.
public class RomanNumeral {
Map<String, Integer> numberMap = new HashMap<String, Integer>();
public RomanNumeral() {
numberMap.put("I", 1);
numberMap.put("V", 5);
numberMap.put("X", 10);
numberMap.put("L", 50);
numberMap.put("C", 100);
numberMap.put("D", 1000);
}
public int convert(String numeral) {
int sum = 0;
int start = numberMap.get(String.valueOf(numeral.charAt(0)));
int endIndex = numeral.length() - 1;
int end = numberMap.get(String.valueOf(numeral.charAt(endIndex)));
if (start < end) {
sum = numberMap.get(String.valueOf(numeral.charAt(endIndex)));
for (int i = numeral.length() - 2; i >= 0; i--) {
char character = numeral.charAt(i);
sum -= numberMap.get(String.valueOf(character));
}
} else {
for (int i = 0; i < numeral.length(); i++) {
char character = numeral.charAt(i);
sum += numberMap.get(String.valueOf(character));
}
}
return sum;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment