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 n=0;
int[] nums={1000,500,100,50,10,5,1};
Map<Integer,String> map=new HashMap<>();
map.put(1,"I");
map.put(10,"X");
map.put(100,"C");
map.put(1000,"M");
map.put(5,"V");
map.put(50,"L");
map.put(500,"D");
String s="";
if(map.containsKey(num))
return map.get(num); for(int i=0;i<nums.length-1;i++)
{
if(num>=nums[i])
{
n=num/nums[i]; if(n>=1&&n<=4){
if(n==4)
{
if(s.length()!=0&&s.substring(s.length()-1,s.length()).equals(nums[i-1]))
{
s=s.substring(0,s.length()-1);
s=s+map.get(nums[i]); if(nums[i]==10||nums[i]==100)
s=s+map.get(nums[i-2]);
}else{
s=s+map.get(nums[i]);
if(nums[i]==10||nums[i]==100)
s=s+map.get(nums[i-1]);
}
}
else{
while(n>0)
{s=s+map.get(nums[i]);n--;}
}
num=num%nums[i];
}
}
}
n=num/nums[nums.length-1];
if(n>=1&&n<=4){
if(n==4)
{s=s+map.get(nums[nums.length-1])+map.get(nums[nums.length-2]);}
else{
while(n>0)
{s=s+map.get(nums[nums.length-1]);n--;}
}
}
s=s.replace("VIV","IX");
s=s.replace("LXL","XC");
s=s.replace("DCD","CM");
return s;
}
}

12. Integer to Roman的更多相关文章

  1. Leetcode 12——Integer to Roman

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

  2. Leetcode 12. Integer to Roman(打表,水)

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

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

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

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

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

  5. 【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 ...

  6. [LeetCode] 12. Integer to Roman ☆☆

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  7. [LeetCode] 12. Integer to Roman 整数转化成罗马数字

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ...

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

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

  9. 【leetcode】12. Integer to Roman

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

随机推荐

  1. [JS]getYear()和getFullYear()方法区别

    getFullYear();总是返回4位完整的年份 getYear();当年份在1900-1999时,返回两位数字,如1980返回80,当不在这个范围时,返回同getFullYear(); 注:get ...

  2. js基础之数组

    数组方法 添加: push arr.push();//尾部添加 unshift arr.unshift();//头部添加 删除: pop arr.pop();//尾部删除 shift arr.shif ...

  3. C# Lodop实现打印

    项目的Debug文件夹下有个template文件夹,里面有用到的js.自己建的要打印的网页和用到的背景图 1.打印方法: class print { public void printzb(strin ...

  4. winform按钮和子按钮

    实现目标: 一.两组按钮1和2,其中按钮2有两个子按钮, (1)当选按钮1时,按钮2和其子按钮不选中: (2)选中按钮2或其子按钮3和4时,1不选中 (3)选中按钮2时,默认选中其子按钮3 (4)选中 ...

  5. mac下安装apache+php+mysql

    运行“sudo apachectl start”,再输入帐号密码,这样Apache就运行了. 运行“sudo apachectl -v”,你会看到Mac OS X 10.6.3中的Apache版本号: ...

  6. php头像上传并裁剪支持3个尺寸

    源码下载

  7. hadoop源码阅读

    1.Hadoop的包的功能分析 2.由于Hadoop的MapReduce和HDFS都有通信的需求,需要对通信的对象进行序列化.Hadoop并没有采用java的序列化,而是引入它自己的系统.org.ap ...

  8. RPI学习--环境搭建_默认启动桌面/终端修改

    参见:http://elinux.org/RPi_raspi-config 首次运行Raspbian会自动进入设置,往后也可以重新进入设置: $ sudo raspi-config 选项3 Enabl ...

  9. [Unity3D]调用Android接口

    简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...

  10. 数据库范式(1NF 2NF 3NF BCNF)详解一

    数据结构设计模式编程制造 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常 ...