zoukankan      html  css  js  c++  java
  • Integer to Roman

    Integer to Roman

    问题:

    Given an integer, convert it to a roman numeral.

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

    思路:

      映射方法-->等长数组

    我的代码:

    public class Solution {
        public String intToRoman(int num) {
            int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };  
            String[] numerals = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };  
            StringBuffer rst = new StringBuffer();
            int len = values.length;
            for(int i = 0; i < len; i++)
            {
               int count = num/values[i];
               num = num % values[i];
               for(int j = 0; j < count; j++)
               {
                   rst.append(numerals[i]);
               }
            }
            return rst.toString();
        }
    }
    View Code

    别人代码:

    public class Solution {
        public String intToRoman(int num) {
            if(num <= 0) {
                return "";
            }
            int[] nums = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
            String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
            StringBuilder res = new StringBuilder();
            int digit=0;
            while (num > 0) {
                int times = num / nums[digit];
                num -= nums[digit] * times;
                for ( ; times > 0; times--) {
                    res.append(symbols[digit]);
                }
                digit++;
            }
            return res.toString();
        }
    }
    View Code

    学习之处:

    • 变量命名 times remain
    • 转化的根本在于映射,常见的映射方法 1、map 2、等长数组

    need to learn

  • 相关阅读:
    pandas基础
    博客迁移公告!
    JavaScript: 认识 Object、原型、原型链与继承。
    微信小程序学习
    WEB安全
    webpack
    《JavaScript 高级程序设计》第四章:变量、作用域和内存问题
    NodeJS学习:搭建私有NPM
    《JavaScript 高级程序设计》第三章:基本概念
    Promise 基础学习
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4315906.html
Copyright © 2011-2022 走看看