[LeetCode] Roman to Integer

原创 2015年11月20日 14:55:34

问题

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;  
        }  
    } 
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

leetcode/roman to integer

如今我们最常见的罗马数字就是钟表的表盘符号:Ⅰ,Ⅱ,Ⅲ,Ⅳ(IIII),Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ…… 对应阿拉伯数字(就是现在国际通用的数字),就是1,2,3,4,5,6,7,8,9,10...

LeetCode 13_Roman to Integer

首先说明一下,这道题和前面12题是双胞胎,以至于刚开始我一度怀疑这是用来凑数的,不过后来分析得知二者用的并不是同一算法。而且在最后整理的过程中还经历了一些有趣的波折,到最后总结时才发现,这些话也是重新...

LeetCode Roman to Integer

题目 Given a roman numeral,convert it to an integer. Input is guaranteed to bewithin the range from ...

13 leetcode - Roman to Integer

Roman to Integer:Given a roman numeral, convert it to an integer.

leetcode 12 -- Integer to Roman

Integer to Roman 题目: Given an integer, convert it to a roman numeral. Input is guaranteed to...

LeetCode之13---Roman to Integer

题目:   Given a roman numeral, convert it to an integer.   Input is guaranteed to be within the range ...

【leetcode】13. Roman to Integer

一、题目描述 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the rang...

LeetCode013:Roman to Integer

原题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range...

Leetcode 12. Integer to Roman

Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 ...

LeetCode 13. Roman to Integer

package com.gloomy.leetcode;import java.util.HashMap;/** * 罗马数字转换为阿拉伯数字 * * @author 52sqz 罗马数字是阿...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)