leetcode-13. Roman to Integer

来源:互联网 发布:ipad可以刷windows吗 编辑:程序博客网 时间:2024/05/20 21:48

leetcode-13. Roman to Integer

题目:

Given a roman numeral, convert it to an integer.

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

和12题比较类似。同样是9*,5*,4*,10*这几个点分段处理就行。没什么特别需要注意的

public class Solution {    public int romanToInt(String s) {        int ret = 0;        while(s.length()>=1 && s.charAt(0)=='M'){            ret += 1000;            s = s.substring(1);        }        if(s.length()>=2 && s.substring(0,2).equals("CM")){            ret += 900;            s = s.substring(2);        }        if(s.length()>=1 && s.charAt(0) == 'D'){            ret += 500;            s = s.substring(1);        }        if(s.length()>=2 && s.substring(0,2).equals("CD")){            ret += 400;            s = s.substring(2);        }        while(s.length()>=1 && s.charAt(0)=='C'){            ret += 100;            s = s.substring(1);        }        if(s.length()>=2 && s.substring(0,2).equals("XC")){            ret += 90;            s = s.substring(2);        }        if(s.length()>=1 && s.charAt(0)=='L'){            ret += 50;            s = s.substring(1);        }        if(s.length()>=2 && s.substring(0,2).equals("XL")){            ret += 40;            s = s.substring(2);        }        while(s.length()>=1 && s.charAt(0)=='X'){            ret += 10;            s = s.substring(1);        }        if(s.length()>=2 && s.substring(0,2).equals("IX")){            ret += 9;            s = s.substring(2);        }        if(s.length()>=1 && s.charAt(0)=='V'){            ret += 5;            s = s.substring(1);        }        if(s.length()>=2 && s.substring(0,2).equals("IV")){            ret += 4;            s = s.substring(2);        }        while(s.length()>=1 && s.charAt(0)=='I'){            ret += 1;            s = s.substring(1);        }        return ret;    }}
0 0
原创粉丝点击