美文网首页ACM题库~
LeetCode 13.Roman to Integer

LeetCode 13.Roman to Integer

作者: 关玮琳linSir | 来源:发表于2017-09-05 15:05 被阅读16次

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.

这道题,是要我们将罗马数字转换成十进制数字,属于一道水题,就不过多的介绍了,直接上代码了。

java代码:

class Solution {
    public int romanToInt(String s) {
        int i, total, pre, cur;
        total = charToInt(s.charAt(0));
        for(i = 1;i<s.length();i++){
            pre = charToInt(s.charAt(i-1));
            cur = charToInt(s.charAt(i));

            if (cur<=pre){
                total+=cur;
            }else {
                total=total -pre*2+cur;
            }
        }
        return total;
    }
    public static int charToInt(char c) {
        int data = 0;
        switch (c) {
            case 'I':
                data = 1;
                break;

            case 'V':
                data = 5;
                break;

            case 'X':
                data = 10;
                break;

            case 'L':
                data = 50;
                break;

            case 'C':
                data = 100;
                break;

            case 'D':
                data = 500;
                break;

            case 'M':
                data = 1000;
                break;
        }
        return data;
    }
}

相关文章

网友评论

    本文标题:LeetCode 13.Roman to Integer

    本文链接:https://www.haomeiwen.com/subject/ejwujxtx.html