12. 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 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的更多相关文章
- Leetcode 12——Integer to Roman
12.Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be withi ...
- Leetcode 12. Integer to Roman(打表,水)
12. Integer to Roman Medium Roman numerals are represented by seven different symbols: I, V, X, L, C ...
- leetCode练题——12. Integer to Roman
1.题目 12. Integer to Roman Roman numerals are represented by seven different symbols: I, V, X, L, C, ...
- 《LeetBook》leetcode题解(12):Integer to Roman[M]
我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...
- 【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 ...
- [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 ...
- [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 ...
- 【LeetCode】12. Integer to Roman 整型数转罗马数
题目: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from ...
- 【leetcode】12. Integer to Roman
题目描述: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range fr ...
随机推荐
- 哈希(Hask)
编辑 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射 ...
- 第一次编辑JAVA
其实就是根据例题来进行编辑,但并不是一次就对了的,有大小写输入出错的问题,有漏掉标点符号的问题,值得注意的是,所有的标点符号都需要是在英文输入法状态下输入的,最后的问题——例题所用的C盘给我们带来了系 ...
- arm-linux-gcc-4.3.2安装步骤
安装交叉编译工具链: 1.首先以root用户登入 2.复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里 3.解压命令tar xvzf arm-linux-gcc-4. ...
- uboot启动 及命令分析(3)
u-boot命令 先贴一个重要结构,位于uboot/include/command.h,这个结构代表每个uboot命令 struct cmd_tbl_s { char *name; /* ...
- SharePoint加K2,将Portal系统与BPM系统完美整合!
K2 blackPearl与Microsoft Office SharePoint 一起为解决人员和流程相互合作的解决方案而提供一个强大的平台. K2“blackpearl”根据企业的需求提供了设计, ...
- JavaScript编程异步助手:Promise
异步模式在Web编程中变得越来越重要,对于Web主流语言JavaScript来说,这种模式实现起来不是很利索,为此,许多JavaScript库(比如 jQuery和Dojo.AngularJS)添加了 ...
- Hadoop 重启各个节点
对于datanode可以在master中配置,然后在maste启动的时候,一并去启动这些节点 .对于死掉的节点,也可以通过以下命令启动 .重启挂掉的节点进入到 挂掉的机器 bin/hadoop-dae ...
- JavaScript 时间特效 显示当前时间
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- Javascript 基础--数组
一.一维数组 1.一维数组 var weights = [3,5,1,3.4,2,50]; var all_weight=0; var avg_weight=0; for(var i=0;i<w ...
- 第八章 标准IO库
1.IO对象时不可复制或者赋值的:也就是说形参或者返回类型也不能为流类型.如果非要传递或者返回IO对象的的话,则必须传递或者返回指向对象的指针或者引用.如: ofstream &print( ...