第三次刷这个题了,这次一次A过!总结起来是利用了小于4000的数字的罗马数字表示上的相对独立性,我们可以只针对正数表示的个位、十位、百位、千位来分别设计计算的策略。

0: return “”

1-3:return相应数字个当前符号

4:返回当前符号+高一级的符号

5:返回高一级符号

6-8:返回高一级符号+相应数量的当前符号

9:当前符号+高两级的符号

上代码:

 1 import java.util.*;
 2
 3 public class Solution {
 4     private String getUnit(int digit, String currentNotation, String largerNotation,String largerlargerNotation){
 5         String res = "";
 6         if(digit==0) return "";
 7         if(digit<=3){
 8             for(int i=0;i<digit;i++) res+=currentNotation;
 9         }else if(digit==4){
10             res = currentNotation + largerNotation;
11         }else if(digit<=8){
12             res = largerNotation;
13             digit = digit - 5;
14             for(int i=0;i<digit;i++) res = res + currentNotation;
15         }else{
16             res = currentNotation + largerlargerNotation;
17         }
18         return res;
19     }
20     public String intToRoman(int num) {
21         String res = "";
22         int gewei = num %10;
23         int shiwei = (num/10)%10;
24         int baiwei = (num/10/10)%10;
25         int qianwei = (num/10/10/10)%10;
26         String qianString = getUnit(qianwei,"M","","");
27         res = res + qianString;
28         String baiString = getUnit(baiwei,"C","D","M");
29         res = res + baiString;
30         String shiString = getUnit(shiwei,"X","L","C");
31         res = res + shiString;
32         String geString = getUnit(gewei,"I","V","X");
33         res = res + geString;
34         return res;
35     }
36 }

转载于:https://www.cnblogs.com/deepblueme/p/4752967.html

[Leetcode] Integer to Roman相关推荐

  1. [LeetCode]Integer to Roman

    题目描述:(链接) Given an integer, convert it to a roman numeral. Input is guaranteed to be within the rang ...

  2. LeetCode Integer to Roman(数字转罗马)

    题意:给出一个1到3999之间的数,求其罗马的表示法 思路:罗马数字中I(1), V(5), X(10), L(50), C(100), D(500),M(1000) 记数规则为: (1)相同的数字连 ...

  3. LeetCode算法入门- Roman to Integer Integer to Roman -day8

    LeetCode算法入门- Roman to Integer -day8 Roman to Integer: 题目描述: Roman numerals are represented by seven ...

  4. leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换

    12 Integer to Roman 13 Roman to Integer 有可能不注意的结果: class Solution {public:/*1.相同的数字连写,所表示的数等于这些数字相加得 ...

  5. Integer to Roman 问题

    Integer to Roman 问题 leetcode java 1.问题描述 Given an integer, convert it to a roman numeral.Input is gu ...

  6. lintcode :Integer to Roman 整数转罗马数字

    题目 整数转罗马数字 给定一个整数,将其转换成罗马数字. 返回的结果要求在1-3999的范围内. 样例 4 -> IV 12 -> XII 21 -> XXI 99 -> XC ...

  7. Roman to Integer/Integer to Roman

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

  8. 【LeetCode】13. Roman to Integer

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

  9. 【leetcode】Integer to Roman

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法-- Question :  Given an integer, convert it to a roman numeral. Input ...

最新文章

  1. 最全的 Spring 依赖注入方式,你都会了吗?
  2. PostCSS原理解析
  3. 控制机械手叫什么_用意念控制机械手臂?世界上第一个半机械人即将诞生!
  4. LeetCode-二叉树-144. 二叉树的前序遍历
  5. Java学习笔记:Javaweb的服务器介绍
  6. JAVA-1011. A+B和C (15)
  7. Unity脚本各种[XXX]的用法
  8. 客户端软件 大华_大华“飞燕”,一款主打稳定WiFi的路由器!
  9. AttributeError: ‘str‘ object has no attribute ‘decode‘ model = keras.models.load_model
  10. NULL 与 nullptr区别与联系
  11. jar包转换为exe可执行文件
  12. 安装selenium教程
  13. mac adb安装和使用
  14. 多域名HTTPS 证书
  15. 151308-48-4,Cyclo(-Gly-Asn-Trp-His-Gly-Thr-Ala-Pro-Asp)-Trp-Val-Tyr-Phe-Ala-His-Leu-Asp-Ile-Ile-Trp
  16. 如果你看ARCore看的一脸懵的话,就来看看这个,带你入门
  17. 几个适合车载的ITX/MATX服务器主板信息总结
  18. 使用pdf.js把PDF文件转图片
  19. Halcon 算子 elliptic_axis
  20. 后端进度报告(2018.5.17)

热门文章

  1. Web服务器启动端口冲突问题
  2. 剑指Offer(Java实现)重建二叉树
  3. Deep Metric Learning for Person Re-Identification
  4. 【Python-ML】神经网络-深度学习库Keras
  5. 【正一专栏】从中超走向世界领先的保利尼奥
  6. Java导入导出CSV文件
  7. Windows 7 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
  8. JSP知识点笔记-常用技术方法
  9. CTFshow php特性 web114
  10. CTFshow 信息收集 web12