Java [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.

解题思路:

上一题反过来就可以了,其实觉得这两道题很没有意思。

代码如下:

public class Solution {
    public int romanToInt(String s) {
        int result;
		if (s == null || s.length() == 0)
			return 0;
		result = toNumber(s.charAt(0));
		for (int i = 1; i < s.length(); i++) {
			if (toNumber(s.charAt(i - 1)) < toNumber(s.charAt(i))) {
				result += toNumber(s.charAt(i)) - 2 * toNumber(s.charAt(i - 1));
			} else {
				result += toNumber(s.charAt(i));
			}
		}
		return result;
	}
	private int toNumber(char ch) {
		switch (ch) {
		case 'I':
			return 1;
		case 'V':
			return 5;
		case 'X':
			return 10;
		case 'L':
			return 50;
		case 'C':
			return 100;
		case 'D':
			return 500;
		case 'M':
			return 1000;
		}
		return 0;
	}
}
原文地址:https://www.cnblogs.com/zihaowang/p/4457089.html