[Leetcode] Integer to Roman
第三次刷这个题了,这次一次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相关推荐
- [LeetCode]Integer to Roman
题目描述:(链接) Given an integer, convert it to a roman numeral. Input is guaranteed to be within the rang ...
- LeetCode Integer to Roman(数字转罗马)
题意:给出一个1到3999之间的数,求其罗马的表示法 思路:罗马数字中I(1), V(5), X(10), L(50), C(100), D(500),M(1000) 记数规则为: (1)相同的数字连 ...
- LeetCode算法入门- Roman to Integer Integer to Roman -day8
LeetCode算法入门- Roman to Integer -day8 Roman to Integer: 题目描述: Roman numerals are represented by seven ...
- leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换
12 Integer to Roman 13 Roman to Integer 有可能不注意的结果: class Solution {public:/*1.相同的数字连写,所表示的数等于这些数字相加得 ...
- Integer to Roman 问题
Integer to Roman 问题 leetcode java 1.问题描述 Given an integer, convert it to a roman numeral.Input is gu ...
- lintcode :Integer to Roman 整数转罗马数字
题目 整数转罗马数字 给定一个整数,将其转换成罗马数字. 返回的结果要求在1-3999的范围内. 样例 4 -> IV 12 -> XII 21 -> XXI 99 -> XC ...
- 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 ...
- 【LeetCode】13. Roman to Integer
题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...
- 【leetcode】Integer to Roman
最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法-- Question : Given an integer, convert it to a roman numeral. Input ...
最新文章
- 最全的 Spring 依赖注入方式,你都会了吗?
- PostCSS原理解析
- 控制机械手叫什么_用意念控制机械手臂?世界上第一个半机械人即将诞生!
- LeetCode-二叉树-144. 二叉树的前序遍历
- Java学习笔记:Javaweb的服务器介绍
- JAVA-1011. A+B和C (15)
- Unity脚本各种[XXX]的用法
- 客户端软件 大华_大华“飞燕”,一款主打稳定WiFi的路由器!
- AttributeError: ‘str‘ object has no attribute ‘decode‘ model = keras.models.load_model
- NULL 与 nullptr区别与联系
- jar包转换为exe可执行文件
- 安装selenium教程
- mac adb安装和使用
- 多域名HTTPS 证书
- 151308-48-4,Cyclo(-Gly-Asn-Trp-His-Gly-Thr-Ala-Pro-Asp)-Trp-Val-Tyr-Phe-Ala-His-Leu-Asp-Ile-Ile-Trp
- 如果你看ARCore看的一脸懵的话,就来看看这个,带你入门
- 几个适合车载的ITX/MATX服务器主板信息总结
- 使用pdf.js把PDF文件转图片
- Halcon 算子 elliptic_axis
- 后端进度报告(2018.5.17)