美文网首页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