13_罗马数字转整数_字符串_简单

 

 莽夫流,还是官方简单。

class Solution {
    int cut(String curStr,String cuts[],HashMap hashMap,HashMap hashMap1){
        int[] ints = new int[curStr.length()];
        for (int k = 0; k < cuts.length; k++) {
            for (int i = 0; i < curStr.length()-cuts[k].length()+1; i++) {
                int flag = 1;
                for (int j = 0; j < cuts[k].length(); j++) {
                    if(curStr.charAt(i+j)!=cuts[k].charAt(j)){
                        flag = 0;
                        break;
                    }
                }
                if(flag == 1){
                    ints[i] = 1;
                }
            }
        }

        int num = 0;
        for (int i = 0; i < curStr.length(); i++) {
            if(ints[i] == 0){
//                System.out.println(curStr.charAt(i));
                num +=   (int)hashMap1.get(curStr.charAt(i)+"");
            }else{
                num += (int)hashMap.get(curStr.charAt(i)+""+curStr.charAt(i+1)+"");
                i++;
            }
        }
        return num;
    }
    public int romanToInt(String s) {
        HashMap<String,Integer> hashmap = new HashMap<>();
        hashmap.put("IV",4);
        hashmap.put("IX",9);
        hashmap.put("XL",40);
        hashmap.put("XC",90);
        hashmap.put("CD",400);
        hashmap.put("CM",900);
        HashMap<String,Integer> hashmap1 = new HashMap<>();
        hashmap1.put("I",1);
        hashmap1.put("V",5);
        hashmap1.put("X",10);
        hashmap1.put("L",50);
        hashmap1.put("C",100);
        hashmap1.put("D",500);
        hashmap1.put("M",1000);
        String str[] = {"IV","IX","XL","XC","CD","CM"};
        return  cut(s,str,hashmap,hashmap1);
    }
}

 

posted @ 2021-09-16 22:16  你的雷哥  阅读(44)  评论(0编辑  收藏  举报