Roman to Integer

来源:互联网 发布:自动控制鼠标的软件 编辑:程序博客网 时间:2024/06/05 22:36

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.


public class Solution {        public int romanToIntII(String s){        if(s == null) return 0;        if("M".equals(s)) return 1000;        if("CM".equals(s)) return 900;        if("D".equals(s)) return 500;        if("CD".equals(s)) return 400;        if("C".equals(s)) return 100;        if("XC".equals(s)) return 90;        if("L".equals(s)) return 50;        if("XL".equals(s)) return 40;        if("X".equals(s)) return 10;        if("IX".equals(s)) return 9;        if("V".equals(s)) return 5;        if("IV".equals(s)) return 4;        if("I".equals(s)) return 1;                return -1;    }        public int romanToInt(String s) {        if(s == null) return 0;        int len = s.length();        int sum = 0;        for(int i=0; i<len; ){            String str2 = "";            String str1 = "";            int res1 = -1;            int res2 = -1;            if(i+2 <= len){                str1 = s.substring(i, i+2);                res1 = romanToIntII(str1);            }            if(i+1 <= len){                str2 = s.substring(i, i+1);                res2 = romanToIntII(str2);            }            if(res1 != -1){                sum += res1;                i += 2;            }            else{                sum += res2;                i++;            }        }        return sum;    }}


0 0