leetcode第十三题_罗马数字转整数

package 简单;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 无法手执玫瑰
 * @version 1.0
 * @date 2020/07/0004 19:51
 */
public class 第十三题_罗马数字转整数 {
    public static int romanToInt(String s) {
        Map<String,Integer > aMap = new HashMap<>();
        aMap.put("IV",4);
        aMap.put("IX",9);
        aMap.put("XL",40);
        aMap.put("XC",90);
        aMap.put("CD",400);
        aMap.put("CM",900);

        int i =0;
        String replace;
        for (Map.Entry<String, Integer> entry : aMap.entrySet()) {
            if(s.contains(entry.getKey())){
                i+=aMap.get(entry.getKey());
                s = s.replace(entry.getKey(), "");
            }
        }
        replace = s;
        //遍历结束后把符合aMap的值全部替换并且加上
        for(int j=0;j<replace.length();j++){
            if(replace.charAt(j) == 'I'){
                i+=1;
            }else if(replace.charAt(j) == 'V'){
                i+=5;
            }else if(replace.charAt(j) == 'X'){
                i+=10;
            }else if(replace.charAt(j) == 'L'){
                i+=50;
            }else if(replace.charAt(j) == 'C'){
                i+=100;
            }else if(replace.charAt(j) == 'D'){
                i+=500;
            }else if(replace.charAt(j) == 'M'){
                i+=1000;
            }
        }

        return i;
    }
    public static void main(String[] args) {
        System.out.println(romanToInt("MCMXCIV"));
    }
}

posted @ 2020-07-18 20:52  无法手执玫瑰  阅读(59)  评论(0)    收藏  举报