题目考察的知识点
考察哈希表的应用
题目解答方法的文字分析
将对应关系存入哈希表中之后开始循环拆分每一个罗马字母,将结果保存并减去哈希表中对应的值。最后的结果和limit比较,看是否需要翻转。
本题解析所用的编程语言
使用Java解答
完整且正确的编程代码
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型 * @param limit int整型 * @return string字符串 */ public String integerToRomanWithReverse(int num, int limit) { LinkedHashMap<Integer, String> mp = new LinkedHashMap<>(); mp.put(1000, "M"); mp.put(900, "CM"); mp.put(500, "D"); mp.put(400, "CD"); mp.put(100, "C"); mp.put(90, "XC"); mp.put(50, "L"); mp.put(40, "XL"); mp.put(10, "X"); mp.put(9, "IX"); mp.put(5, "V"); mp.put(4, "IV"); mp.put(1, "I"); StringBuilder res = new StringBuilder(); for (Integer val : mp.keySet()) { String s = mp.get(val); while (num >= val) { num -= val; res.append(s); } } if (res.length() >= limit) { res.reverse(); } return res.toString(); } }