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 ...
随机推荐
- LOJ2323. 「清华集训 2017」小 Y 和地铁 【搜索】【思维】【好】
LINK 思路 首先如果直接算每一个段有三个决策 左/右 上/下 跨不跨过端点 这样的复杂度是\((2^3)^{22}\),显然是无法接受的 然后考虑怎么优化这个东西 首先左右这个决策是没有意义的 因 ...
- BZOJ1878 SDOI2009 HH的项链 【莫队】
BZOJ1878 SDOI2009 HH的项链 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的 ...
- 20179223《Linux内核原理与分析》第五周学习笔记
视频内容知识学习 一.用户态.内核态和中断 1.内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 2.用户态:处于低的执行级别下,代码只能在级别允许的特定 ...
- C#/.NET 读取或修改文件的创建时间和修改时间
手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成. .NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写 ...
- 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)
知道了 csproj 文件中的一些常用 NuGet 属性,创建 NuGet 包时就可以充分发挥新 Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦.(毕竟 nuspec 文件没有 ...
- linux 下执行python.py 无效解决方案
python 下写linux执行脚本 单独执行 python /home/xx.py 运行正常,但是在linux下 crotch -l 发现有任务运行: 30 0 * * * python /hom ...
- ubuntu ftp服务器搭建
linux ftp服务器部署 1.sudo apt-get install vsftpd ##下载vsftpd 2.sudo vim /etc/vsftpd.conf ##vsftpd配置文件 ...
- C#通过StreamWriter对象实现把数值内容写到记事本
本文介绍下,用C#实现将数组内容写到txt文件中的一例代码,有需要的朋友,参考下吧. 代码示例:StreamWriter sw=new StreamWriter("F:\\ex.txt&qu ...
- ballerina 学习一 基本项目安装试用
ballerina介绍 建议参考这篇文章: https://mp.weixin.qq.com/s/DqdlOhquqMaGOJf26lANPw 1. 安装 直接下载对应操作系统的二进制文件即 ...
- webpack extract-text-webpack-plugin
备注: 提炼上面引用的css 1. 插件配置 const path = require("path"); const extracttextplugin = require( ...