leetcode012 Integer to Roman
来源:互联网 发布:linux 用户安全设置 编辑:程序博客网 时间:2024/06/08 18:22
题目
12. Integer to Roman
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
思路:
本想用HashMap来存储数字与字母的对应关系,但是考虑到只是存放映射关系的话用Map太庞大了,于是自己写了一个方法getChar来存放映射关系。然后就从高位依次向下计算找到对应的字母即可,每位如果是数字4和9的话就要仔细考虑。PS: 罗马数字与阿拉伯数字转换:点击这里
代码:
private char getChar(int key){ char res = '\0'; switch(key) { case 1: res = 'I'; break; case 5: res = 'V'; break; case 10: res = 'X'; break; case 50: res = 'L'; break; case 100: res = 'C'; break; case 500: res = 'D'; break; case 1000: res = 'M'; break; } return res;}public String intToRoman(int num){ StringBuilder roman = new StringBuilder(); int flag = 1000; while(num < flag) flag /= 10; while(flag > 0) { int n = num / flag; if(n == 9 || n == 4) { roman.append(getChar(flag)).append(getChar((n + 1) * flag)); n = 0; } else if(n / 5 > 0) { roman.append(getChar(5 * flag)); n -= 5; } for(int i = n; i > 0; i--) roman.append(getChar(flag)); num %= flag; flag /= 10; } return roman.toString();}
结果细节(图):
0 0
- leetcode012:Integer to Roman
- leetcode012 Integer to Roman
- Leetcode012 Integer to Roman
- 【LeetCode012算法/编程练习C++】Integer to Roman //map的遍历&数组的妙用
- Integer to Roman & Roman to Integer
- Integer to Roman & Roman to Integer
- LeetCode Roman to Integer && Integer to Roman
- 【leetcode】Roman to Integer | Integer to Roman
- Leetcode - "Roman to Integer" & "Integer to Roman"
- LeetCode:Roman to Integer,Integer to Roman
- Integer to Roman and Roman to Integer
- LeetCode Integer to Roman & Roman to Integer
- Roman to Integer/Integer to Roman
- leetcode - roman to integer & integer to roman
- "Roman to Integer" and "Integer to Roman"
- Roman to Integer &&Integer to Roman
- Roman to Integer and Integer to Roman
- Roman to Integer/Integer to Roman
- 如何求二进制表示中“1”的个数
- Android使用xml旋转图片,个人记录
- Apache commons (Java常用工具包)简介
- 控制台五子棋游戏类记录
- 导入v4库源码
- leetcode012 Integer to Roman
- 自定义view之一:自定义验证码控件
- QQ也可以和微信一样只能共同好友见评论
- matlab图像数据转换函数
- 问题 A: 输入字符串以及输出
- 123
- lintcode: Balanced Binary Tree
- ACM——GCD算法
- mybatis 中#与$的区别