LeetCode 12 Integer to Roman(整型数到罗马数)
2015-10-15 14:46
309 查看
翻译
原文
我不会告诉你一开始我是用的无数个变量和if……
后来实在受不了这么多变量就将其写成了枚举,那么接下来就迎刃而解了。
为了让大家理解罗马数是怎么计数的,这里我截了一张图,具体的大家可以自行用微软Bing搜索。
那么代码我就先贴出来了:
今天晚些时候我会将 C# 枚举的一些用法贴到博客上,不了解的同学敬请关注。
除了枚举的用法外,我认为这道题中需要你去认真了解这些罗马数的规则,也就是说记得将9和4这种数也添加到枚举中哦。
那么在IntToRoman中都中都在做些什么呢?
搭配Type和typeof新建出来R
用foreach遍历枚举中的所有元素
切记要加上Reverse(),至于为什么,大家试试不加就知道了
如果num比枚举中的数字大,则将其对应的字符串(比如说”M”)添加到result中
最后在num中减掉刚才已经用过的数字,数字也通过枚举来获取
最后返回result
好了,到此为止,准备迎接下一题。
下一道题还是关于罗马数的,不过是从罗马数转换成整型数,欢迎大家访问:传送门:LeetCode 13 Roman to Integer(罗马数到整型数) 。
给定一个整型数值,将其转换到罗马数字。 输入被保证在1到3999之间。
原文
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.
我不会告诉你一开始我是用的无数个变量和if……
后来实在受不了这么多变量就将其写成了枚举,那么接下来就迎刃而解了。
为了让大家理解罗马数是怎么计数的,这里我截了一张图,具体的大家可以自行用微软Bing搜索。
那么代码我就先贴出来了:
public class Solution { public string IntToRoman(int num) { string result = ""; Type R = typeof(Roman); foreach (var r in Enum.GetNames(R).Reverse()) { while (num >= int.Parse(Enum.Format(R, Enum.Parse(R, r), "d"))) { result += r.ToString(); num -= int.Parse(Enum.Format(R, Enum.Parse(R, r), "d")); } } return result; } } public enum Roman { M = 1000, CM = 900, D = 500, CD = 400, C = 100, XC = 90, L = 50, XL = 40, X = 10, IX = 9, V = 5, IV = 4, I = 1 };
今天晚些时候我会将 C# 枚举的一些用法贴到博客上,不了解的同学敬请关注。
除了枚举的用法外,我认为这道题中需要你去认真了解这些罗马数的规则,也就是说记得将9和4这种数也添加到枚举中哦。
那么在IntToRoman中都中都在做些什么呢?
搭配Type和typeof新建出来R
用foreach遍历枚举中的所有元素
切记要加上Reverse(),至于为什么,大家试试不加就知道了
如果num比枚举中的数字大,则将其对应的字符串(比如说”M”)添加到result中
最后在num中减掉刚才已经用过的数字,数字也通过枚举来获取
最后返回result
好了,到此为止,准备迎接下一题。
下一道题还是关于罗马数的,不过是从罗马数转换成整型数,欢迎大家访问:传送门:LeetCode 13 Roman to Integer(罗马数到整型数) 。
相关文章推荐
- ffmpeg记忆
- Java Map Key-Value
- Linux进程实践(3) --进程终止与exec函数族
- C#语言中的修饰符汇总
- 解决linux buffer/cache 消耗内存过高引发的问题
- jdbc连接数据库及对数据库实现增删改查
- Android开发 MeasureSpec介绍
- ubuntu SDL加载图片
- 高精度计时器类
- C# 垃圾回收机制
- request.getRequestURI() 、request.getRequestURL()
- LeetCode(99) Recover Binary Search Tree
- Android调用基于.net的WebService
- In Oracle 11g, how to change the order of the results of a sql without “order by”?(转)
- 常用的交互设计软件
- Sublime Text 3 破解 + 注册 + 汉化 + 教程 + 快捷键大全 + 中文乱码 +编译JAVA
- Java笔记--多线程
- LeetCode(99) Recover Binary Search Tree
- 0917词法分析
- js 浏览器兼容问题