Roman to Integer(罗马数字转整数)

http://www.lintcode.com/en/problem/roman-to-integer/?rand=true

public class Solution {
    /*
     * @param s: Roman representation
     * @return: an integer
     */
    public int romanToInt(String s) {
        // write your code here
        char[] chars = s.toCharArray();
        //用于记录结果并赋值
        int res = toInt(chars[0]);
        for (int i = 1; i < chars.length; i++) {
            int last = toInt(chars[i - 1]);
            int now = toInt(chars[i]);
            //VI表示6,后边比前边小的要加上。
            //IV表示4, 后边比前边大的,表示加上后边的再送去前边的,但因为是从前边过来的,要再减去一个前边的。
            if (last < now) {
                res += now - last - last;
            } else {
                res += now;
            }
        }
        return res;
    }

    int toInt(char s) {
        switch (s) {
            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;
    }
}

你可能感兴趣的:(Roman to Integer(罗马数字转整数))