leetcode题解-12. Integer to Roman

来源:互联网 发布:电话号码扫描录入软件 编辑:程序博客网 时间:2024/06/01 15:11

题意:给定一个整型数值,将其转换到罗马数字。输入被保证在1到3999之间。

分析:题目也属于描述不太清楚的题,需要我们自己想到映射规则。百度百科
这里写图片描述

范围给到3999,感觉情况不多,不断减去需要直接表示的数,而不需要用case代码繁琐的进行判断。

class Solution {    public String intToRoman(int num) {        String[] strs = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};        int[] nums = {1000,900,500,400,100,90,50,40,10,9,5,4,1};        StringBuilder sb = new StringBuilder();        for(int i = 0; i < nums.length; i++){            while(num >= nums[i]){                num -= nums[i];                sb.append(strs[i]);            }        }        String str = sb.toString();        return str;    }}
原创粉丝点击