Roman to Integer

题目描述:

Given a roman numeral, convert it to an integer.

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

这个题就只要想清楚处理好4.40.400,8,80,800.。。。的情况就行了。

例如当IX时,前面已经加了1,那么只用加3=5-2*1即可。

代码如下:

public class Solution {
    public int romanToInt(String s) {
        int result=0;
        result+=getInt(s.charAt(0));
        for(int i=1;i<s.length();i++){
        	if(getInt(s.charAt(i))>getInt(s.charAt(i-1)))
        		result+=getInt(s.charAt(i))-2*getInt(s.charAt(i-1));
        	else
        		result+=getInt(s.charAt(i));
        }
        return result;
    }
	
	public int getInt(Character ch){
		int a=0;
		switch (ch) {
		case 'I':a=1;break;
		case 'V':a=5;break;
		case 'X':a=10;break;
		case 'L':a=50;break;
		case 'C':a=100;break;
		case 'D':a=500;break;
		case 'M':a=1000;break;
		default:
			break;
		}
		return a;
	}
}


你可能感兴趣的:(java,Math,LeetCode)