GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Java/Conversions/RomanToInteger.java at master · pythonpeixun/Java Expand file tree/ Copy pathRomanToInteger.javaMore file actions 58 lines (45 loc) · 1.37 KB / Copy pathRomanToInteger.javaFile metadata and controls58 lines (45 loc) · 1.37 KB 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 package Conversions; import java.util.*; public class RomanToInteger { private static Map<Character, Integer> map = new HashMap<Character, Integer>() {{ put('I', 1); put('V', 5); put('X', 10); put('L', 50); put('C', 100); put('D', 500); put('M', 1000); }}; /** * This function convert Roman number into Integer * * @param A Roman number string * @return integer */ public static int romanToInt(String A) { char prev = ' '; int sum = 0; int newPrev = 0; for (int i = A.length() - 1; i >= 0; i--) { char c = A.charAt(i); if (prev != ' ') { // checking current Number greater then previous or not newPrev = map.get(prev) > newPrev ? map.get(prev) : newPrev; } int currentNum = map.get(c); // if current number greater then prev max previous then add if (currentNum >= newPrev) { sum += currentNum; } else { // subtract upcoming number until upcoming number not greater then prev max sum -= currentNum; } prev = c; } return sum; } public static void main(String[] args) { int sum = romanToInt("MDCCCIV"); System.out.println(sum); } } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |