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. 长理ACM 14-星期几(谌海军)

    题目描述:编一个程序,已知今天是星期几,计算出n天后是星期几.要求使用枚举变量. 输入描述:输入为两个正整数,第一个数n(n<=6)表示今天是星期几,第二个数m(m<=1000),表示求m ...

  2. POJ 2992 求组合数的因子个数

    求C(n,k)的因子个数 C(n,k) = (n*(n-1)*...*(n-k+1))/(1*2*...*k) = p1^k1 * p2^k2 * ... * pt^kt 这里只要计算出分子中素数因子 ...

  3. android 判断网络是否连接

    package com.liucanwen.baidulocation.util; import android.app.Activity; import android.content.Contex ...

  4. 使用Fragment 实现动态UI 和 动态添加Fragment

    首先写好每个Fragment: 1.在第一个Fragment写一个按钮,使其加载下一个Fragment 布局: <LinearLayout xmlns:android="http:// ...

  5. VMWare Workstation 10.0 Preview CN

    What's New in the VMware Workstation Technology Preview July 2013 The VMware Workstation team is exc ...

  6. flash 和 第三方程序交互

    一.flash 端 修改 1.flash cs6  修改脚本 为as3 2.修改 按钮 实例 名 (不是sprite列表中的名字  实例名称 和这个名字 是2个) 3.时间轴上 添加代码 当前选择 A ...

  7. JVM-class文件完全解析-字段表集合

     字段表集合 这个class文件的解析,分析得有点太久了.前面介绍类魔数,次版本号,主板本号,常量池入口,常量池,访问标志,类索引,父类索引和接口索引集合.下面就应该到字段表集合了.  紧接着接口索引 ...

  8. Apparmor——Linux内核中的强制访问控制系统

      AppArmor 因为最近在研究OJ(oline judge)后台的安全模块的实现,所以一直在研究Linux下沙箱的东西,同时发现了Apparmor可以提供访问控制. AppArmor(Appli ...

  9. linux基础命令学习五(软件包管理、下载管理)

    Linux 软件包管理   本文主要是记录下RedHat系列的软件包管理. 内容分为以下二个部分:二进制包的管理,源代码包的管理 一.二进制包的管理 1.1概念 主要有RPM和YUM这两种包管理. 两 ...

  10. 永不消逝的电波(三):低功耗蓝牙(BLE)入门之如何调戏别人的小米手环

    0×00 前言 蓝牙(Bluetooth),一种无线技术标准,用来让固定与移动设备,在短距离间交换数据,以形成个人局域网(PAN).其使用短波特高频(UHF)无线电波,经由2.4至2.485 GHz的 ...