LeetCode题解 #12 Integer to Roman
题目大意:给定数字,将其转化为罗马数字的形式
罗马数字其实只有 I V X L C D M 这几种形式,其余均为组合的,去百度了解一下就ok。
所以首先想到的就是,将个、十、百、千位的数字构造出来,然后直接用就好了。
要特别注意为整10,整100、1000的情况。
String [] ge ={"I","II","III","IV","V","VI","VII","VIII","IX"};
String [] shi = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
String [] bai = {"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
String [] qian = {"M","MM","MMM"};
public String intToRoman(int num) {
String result = "";
String g = "";
String s = "";
String b = "";
String q = "";
if(num%10>0){
g = ge[num%10-1];
num/=10;}else{
g="";
num/=10;
}
if(num>0){
if(num%10>0){
s = shi[num%10-1];
num/=10;}else{
s="";
num/=10;
}
if(num>0){
if(num%10>0){
b = bai[num%10-1];
num/=10;}else{
b="";
num/=10;
}
if(num>0){
q=qian[num%10-1];
num/=10;
return q+b+s+g;
}
else{
return b+s+g;
}
}
else{
return s+g;
}
}
else
return g;
}
更精简的代码(将整10、100、1000的情况整合到数组里面)
string intToRoman(int num) {
string roman[4][10] = {
{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},
{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},
{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},
{"", "M", "MM", "MMM"}
};
string ret = "";
int digit = 0;
while (num)
{ret = roman[digit++][num % 10] + ret, num /= 10; return ret; }
LeetCode题解 #12 Integer to Roman的更多相关文章
- 《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 整数转罗马数字
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:roman, 罗马数字,题解,leetcode, 力扣, ...
- 【一天一道LeetCode】#12 Integer to Roman
一天一道LeetCode系列 (一)题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be with ...
- 【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 ...
- LeetCode:12. Integer to Roman(Medium)
1. 原题链接 https://leetcode.com/problems/integer-to-roman/description/ 2. 题目要求 (1) 将整数转换成罗马数字: (2) 整数的范 ...
- leetCode练题——12. Integer to Roman
1.题目 12. Integer to Roman Roman numerals are represented by seven different symbols: I, V, X, L, C, ...
- Leetcode 12——Integer to Roman
12.Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be withi ...
随机推荐
- iOS runloop 自定义输入源
创建自定义输入源需要定义以下内容 1)输入源要处理的信息 2)使感兴趣的客户端知道如何和输入源交互的调度例程 3)处理其他任何客户发送请求的例程 4)使输入源失效的取消例程 上图的处理流程:主线程(M ...
- js之吸顶效果
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- UDP示例
android学习笔记18--------------UDP示例 分类: android2011-11-10 10:07 848人阅读 评论(0) 收藏 举报 androidbufferexcepti ...
- UESTC794 Balloon Game 博弈
题目链接:Balloon Game 题目大意: Alice 和 Bob进行一个博弈游戏,他们要摆放气球,保证颜色一样的气球全部相邻出现,现在在一个序列中气球有一部分已经摆放,还有一些未摆放,用&quo ...
- BZOJ4975: [Lydsy1708月赛]区间翻转( 博弈&逆序对)
4975: [Lydsy1708月赛]区间翻转 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 265 Solved: 140[Submit][Stat ...
- DVD项目
package sy.com.cn;import java.util.*; public class DvdWorker { public static void main(String[]args) ...
- 【DUBBO】dubbo的Cluster接口
Directory中的多个Invoker伪装成一个Invoker, 对上层透明,包含集群的容错机制 Cluster可以看做是工厂类, 将目录directory下的invoker合并成一个统一的Invo ...
- __getitem__ 专用方法
(1) __getitem__ 专用方法很简单.像普通的方法 clear,keys 和 values 一样,它只是重定向到字典,返回字典的值.但是怎么调用它呢?哦,你可以直接调用 __getitem ...
- 两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2d ...
- C#修改系统环境变量,调用批处理bat
一.设置环境变量 public void SetPath(string pathValue) { string pathlist; pathlist = Environment.GetEnvironm ...