【Leetcode】12. Integer to Roman

来源:互联网 发布:中锐网络招聘 编辑:程序博客网 时间:2024/06/06 10:42

阿拉伯数字转罗马数字的思路:

(1)把所有小数字在前的组合也作为基本数字,做一个对应的数值映射表:4=1-5=IV,9=1-10=IX,40=10-50=XL,90=10-100=XC,400=100-500=CD, 900=100-1000=CM。

(2)对于阿拉伯数字n,遍历val数组,如果n>=val[i],则结果保留r[i],同时更新n=n-val[i],直到n=0为止。

public class Solution {    public String intToRoman(int num) {        int[] val = new int[] {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};        String[] r = new String[] {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};        String result = "";        while (num > 0) {            for (int i = 0; i < 13; i++) {                if (num >= val[i]) {                    result = result + r[i];                    num = num - val[i];                    break;                }            }        }        return result;    }}
Runtime:92ms

1 0
原创粉丝点击