LeetCode | #12 Integer to Roman
2015-01-16 22:20
417 查看
题目:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
思路:
用二维数组记录每一位上0-9的罗马数字表示法,代替0-9
网上看到别人的解法,更加简洁,记录特殊进位的罗马字符,然后从最大的进位做减法
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
思路:
用二维数组记录每一位上0-9的罗马数字表示法,代替0-9
public String intToRoman(int num) { //穷举,用二维数组保存所有位的字母表示 String[][] c = new String[][]{ {"","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"}}; int i=0, j; String s = new String(); while(num > 0){ j = num%10; s = c[i][j]+s; num = num/10; i++; } return s; }
网上看到别人的解法,更加简洁,记录特殊进位的罗马字符,然后从最大的进位做减法
public String intToRoman(int num) { String[] c = new String[]{"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; int[] v = new int[]{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; String s = new String(); for(int i = 0; i< v.length; i++){ while(num >= v[i]){ num = num-v[i]; s = s+c[i]; } } return s; }
相关文章推荐
- [leetcode 12] Integer to Roman
- Leetcode_12_Integer to Roman
- LeetCode 12 - Integer to Roman
- [Leetcode] 12. Integer to Roman
- [Leetcode 44] 12 Integer To Roman
- LeetCode --- 12. Integer to Roman
- LeetCode12: Integer to Roman
- Leetcode 12 Integer to Roman整数变罗马
- leetcode 12 Integer to Roman
- [Leetcode] 12 - Integer to Roman
- LeetCode 12 integer to roman
- leetcode12 Integer to Roman
- LeetCode 12 Integer to Roman(C,C++,Java,Python)
- [LeetCode]12 Integer to Roman
- [LeetCode]12.Integer to Roman
- [LeetCode 12] Integer to Roman
- 12. Integer to Roman Leetcode Python
- [C++]LeetCode 12: Integer to Roman(将整数转换为罗马数字)
- LeetCode 12 - Integer to Roman
- LeetCode12~14 Integer to Roman/Roman to Integer/Longest Common Prefix