13.罗马数字转整数

简介: 13.罗马数字转整数

13.罗马数字转整数

 

通过硬编码的方式,将13个罗马数字和整数进行映射。

值得注意的细节:s.substring的(i,i+2) 包含s[i]和s[i+1] ,不包含s[i+2]。

    public int romanToInt(String s) {
        int[] store = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
        String[] strs = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
        HashMap<String,Integer>  maps= new HashMap<>();
        for (int a = 0; a < store.length; a++) {
            maps.put(strs[a],store[a]);
        }
        int result = 0;
        for (int i = 0; i < s.length(); ) {
            if (i+1 < s.length() && maps.containsKey(s.substring(i,i+2)) ) {
                result += maps.get(s.substring(i,i+2));
                i+=2;
            }else{
                result += maps.get(s.substring(i,i+1));
                i++;
            }
 
        }
        return  result;
    }
相关文章
|
3月前
|
Java
罗马数字转整数
这篇文章提供了一个Java方法,用于将罗马数字转换为整数,通过一个字符一个字符地解析罗马数字字符串并根据特定规则进行相应的加法或减法运算。
|
6月前
13. 罗马数字转整数
13. 罗马数字转整数
41 2
|
6月前
12. 整数转罗马数字
12. 整数转罗马数字
55 1
|
5月前
|
算法
12.整数转罗马数字
12.整数转罗马数字
|
6月前
13.罗马数字转整数
13.罗马数字转整数
31 0
|
6月前
|
测试技术
【力扣】13. 罗马数字转整数、12. 整数转罗马数字
【力扣】13. 罗马数字转整数、12. 整数转罗马数字
LeetCode:13、罗马数字转整数
LeetCode:13、罗马数字转整数
|
6月前
|
测试技术 C++
罗马数字转整数(C++)
罗马数字转整数(C++)
66 0
|
6月前
leetcode-12:整数转罗马数字
leetcode-12:整数转罗马数字
40 0
|
6月前
leetcode-13:罗马数字转整数
leetcode-13:罗马数字转整数
39 0