LeetCode题解:Integer to Roman

来源:互联网 发布:galgame软件手机 编辑:程序博客网 时间:2024/06/07 03:06

Given an integer, convert it to a roman numeral.

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

题意:给定一个整数,将其转换为罗马数

解题思路:按照转换关系换

代码:

import java.util.LinkedHashMap;public class Solution {    private static LinkedHashMap<Integer, String> numToRoman = new LinkedHashMap<Integer, String>();    static {        numToRoman.put(1000, "M");        numToRoman.put(900, "CM");        numToRoman.put(500, "D");        numToRoman.put(400, "CD");        numToRoman.put(100, "C");        numToRoman.put(90, "XC");        numToRoman.put(50, "L");        numToRoman.put(40, "XL");        numToRoman.put(10, "X");        numToRoman.put(9, "IX");        numToRoman.put(5, "V");        numToRoman.put(4, "IV");        numToRoman.put(1, "I");    }    public String intToRoman(int num) {        for (Integer i : numToRoman.keySet()) {            if (num >= i) {                return numToRoman.get(i) + intToRoman(num - i);            }        }        return "";    }}
0 0
原创粉丝点击