题目大意:给定数字,将其转化为罗马数字的形式

罗马数字其实只有 I V X L C D M 这几种形式,其余均为组合的,去百度了解一下就ok。

所以首先想到的就是,将个、十、百、千位的数字构造出来,然后直接用就好了。

要特别注意为整10,整100、1000的情况。

String [] ge ={"I","II","III","IV","V","VI","VII","VIII","IX"};

String [] shi = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};

String [] bai = {"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};

String [] qian = {"M","MM","MMM"};

public String intToRoman(int num) {

String result = "";
String g = "";
String s = "";
String b = "";
String q = "";

if(num%10>0){
g = ge[num%10-1];
num/=10;}else{

g="";
num/=10;
}

if(num>0){

if(num%10>0){
s = shi[num%10-1];
num/=10;}else{

s="";
num/=10;
}

if(num>0){

if(num%10>0){
b = bai[num%10-1];
num/=10;}else{

b="";
num/=10;
}

if(num>0){

q=qian[num%10-1];
num/=10;

return q+b+s+g;

}
else{

return b+s+g;

}

}
else{

return s+g;

}

}
else
return g;

}

更精简的代码(将整10、100、1000的情况整合到数组里面)

string intToRoman(int num) {

string roman[4][10] = {

{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},

{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},

{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},

{"", "M", "MM", "MMM"}

};

string ret = "";

int digit = 0;

while (num)

{ret = roman[digit++][num % 10] + ret, num /= 10; return ret; }

LeetCode题解 #12 Integer to Roman的更多相关文章

  1. 《LeetBook》leetcode题解(12):Integer to Roman[M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  2. 【LeetCode】12. Integer to Roman (2 solutions)

    Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be within t ...

  3. 【LeetCode】12. Integer to Roman 整数转罗马数字

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:roman, 罗马数字,题解,leetcode, 力扣, ...

  4. 【一天一道LeetCode】#12 Integer to Roman

    一天一道LeetCode系列 (一)题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be with ...

  5. 【LeetCode】12. Integer to Roman 整型数转罗马数

    题目: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from ...

  6. 【leetcode】12. Integer to Roman

    题目描述: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range fr ...

  7. LeetCode:12. Integer to Roman(Medium)

    1. 原题链接 https://leetcode.com/problems/integer-to-roman/description/ 2. 题目要求 (1) 将整数转换成罗马数字: (2) 整数的范 ...

  8. leetCode练题——12. Integer to Roman

    1.题目 12. Integer to Roman Roman numerals are represented by seven different symbols: I, V, X, L, C,  ...

  9. Leetcode 12——Integer to Roman

    12.Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be withi ...

随机推荐

  1. python2 之 pyh2

    1.功能 pyh作爲基於python的簡易html生成庫,收到了廣大python愛好者(比如說我,當然其他人沒有調查過)的深切喜愛. 簡潔的行文風格繼承了python一貫的作風,可以讓你用簡單的Pyt ...

  2. Android 百度地图2.4.2版本标注动画效果

    ImageView latestMapEventImageView = null; // 更新震中位置 private void updateMapEventOverlay() { mMapEvent ...

  3. 每天一个linux命令(性能、优化):【转载】vmstat命令

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...

  4. bzoj 4595 激光发生器

    bzoj 4595 激光发生器 光线为射线,每次找到与当前光线相交且距离最近的镜子,然后旋转光线. 直线,射线利用线上一点+方向向量的方式表示.旋转时,旋转中心作为线上一点不变,方向向量左乘旋转矩阵. ...

  5. java面试题02

    1.JAVA内部使用的编码格式是(utf-8) 2. public class Threads2 implements Runnable { @Overridepublic void run() {S ...

  6. svg图片的缩放拖拽

    svg是一种不错的矢量图,有时候我们会使用这样的图片来作为展示图,因为它不会因为放大缩小而失真. 好了,不扯淡了,废话少说,直入主题吧. 首先确定你是要深入学习还是要简单的把遇到的小任务解决一下,以后 ...

  7. php7+Redis+Windows7安装 (phpstudy)

    1.首先去github网站上下载https://github.com/dmajkic/redis/downloads: 2.根据实际情况,将64bit的内容cp到自定义盘符目录,如D:\Redis; ...

  8. 《selenium2 python 自动化测试实战》(15)——调用js控制滚动条等操作

    看代码: # coding=utf-8 from time import sleepfrom selenium import webdriver driver = webdriver.Firefox( ...

  9. Scrapy源码研究前戏

    一.Twisted的使用 在 Twisted 中,有一种特殊的对象用于实现事件循环.这个对象叫做 reactor.可以把反应器(reactor)想象为 Twisted 程序的中枢神经.除了分发事件循环 ...

  10. HTML 按钮换肤

    .button2{ background-image: url(images/input-bg.jpg); width: 83px; height: 31px; border: none 0px; f ...