From d5c1be943aa8c0990af2ebf08f32437e4a442af5 Mon Sep 17 00:00:00 2001 From: Xevion Date: Fri, 15 Jan 2021 19:40:22 -0600 Subject: [PATCH] roman-to-integer solution java --- roman-to-integer/Solution.java | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 roman-to-integer/Solution.java diff --git a/roman-to-integer/Solution.java b/roman-to-integer/Solution.java new file mode 100644 index 0000000..f64061b --- /dev/null +++ b/roman-to-integer/Solution.java @@ -0,0 +1,35 @@ +// Accepted +// Runtime: 4ms +// Memory Usage: 39.3 MB +// Submitted: January 15th, 2021 + +class Solution { + Map convert = new HashMap(); + + public Solution() { + char[] symbols = new char[]{'I', 'V', 'X', 'L', 'C', 'D', 'M'}; + int[] values = new int[]{1, 5, 10, 50, 100, 500, 1000}; + + for (int i = 0; i < symbols.length; i++) + convert.put(symbols[i], values[i]); + } + + public int romanToInt(String s) { + int n = s.length(); + int sum = 0; + int prev = convert.get(s.charAt(0)); + int cur = 0; + + for (int i = 1; i < n; i++) { + cur = convert.get(s.charAt(i)); + if (prev < cur) + cur -= prev; + else + sum += prev; + prev = cur; + } + sum += prev; + + return sum; + } +} \ No newline at end of file