关闭

[LeetCode] Roman to Integer

标签: LeetCodejava
94人阅读 评论(0) 收藏 举报
分类:

问题

Given a roman numeral, convert it to an integer.

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

Subscribe to see which companies asked this question


思路

罗马数字的构造方式上一篇博客里面有提到,按照这个逻辑组织代码即可。


代码

public class Solution {
    public int romanToInt(String s) {
        int ret = charToNum(s.charAt(0));

        for (int i = 1; i < s.length(); i++) {  
            if (charToNum(s.charAt(i-1)) < charToNum(s.charAt(i)))
                ret += charToNum(s.charAt(i)) - 2*charToNum(s.charAt(i-1));  
            else
                ret += charToNum(s.charAt(i));  
        }  
        return ret;  
    }
    
    public int charToNum (char c) {  
        switch(c) {  
            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;  
            default: return 0;  
        }  
    } 
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3536次
    • 积分:310
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档