[leetcode]12. Integer to Roman
2016-10-15 18:13
232 查看
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
这道题基本没什么算法上的难点,就是需要知道罗马字母和整数的对应关系就行了。
1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
1000~3000: {"M", "MM", "MMM"}.
java代码
public class Solution {
// 1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
// 10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
// 100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
// 1000~3000: {"M", "MM", "MMM"}.
public String intToRoman(int num) {
String[][] keyArray = {{"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 result = "";
while(num>0){
if(num>=1000){
result+=keyArray[3][num/1000-1];
num-=(num/1000)*1000;
}else if(num>=100){
result+=keyArray[2][num/100-1];
num-=(num/100)*100;
}else if(num>=10){
result+=keyArray[1][num/10-1];
num-=(num/10)*10;
}else{
result+=keyArray[0][num-1];
num-=num;
}
}
return result;
}
}
go代码
func intToRoman(num int) string {
var keyArray [][]string = [][]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"}};
var result string = "";
for{
if num==0{
break;
}
if num>=1000{
result+=keyArray[3][num/1000-1];
num-=(num/1000)*1000;
}else if num>=100{
result+=keyArray[2][num/100-1];
num-=(num/100)*100;
}else if num>=10{
result+=keyArray[1][num/10-1];
num-=(num/10)*10;
}else{
result+=keyArray[0][num-1];
num-=num;
}
}
return result;
}
Input is guaranteed to be within the range from 1 to 3999.
这道题基本没什么算法上的难点,就是需要知道罗马字母和整数的对应关系就行了。
1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
1000~3000: {"M", "MM", "MMM"}.
java代码
public class Solution {
// 1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
// 10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
// 100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
// 1000~3000: {"M", "MM", "MMM"}.
public String intToRoman(int num) {
String[][] keyArray = {{"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 result = "";
while(num>0){
if(num>=1000){
result+=keyArray[3][num/1000-1];
num-=(num/1000)*1000;
}else if(num>=100){
result+=keyArray[2][num/100-1];
num-=(num/100)*100;
}else if(num>=10){
result+=keyArray[1][num/10-1];
num-=(num/10)*10;
}else{
result+=keyArray[0][num-1];
num-=num;
}
}
return result;
}
}
go代码
func intToRoman(num int) string {
var keyArray [][]string = [][]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"}};
var result string = "";
for{
if num==0{
break;
}
if num>=1000{
result+=keyArray[3][num/1000-1];
num-=(num/1000)*1000;
}else if num>=100{
result+=keyArray[2][num/100-1];
num-=(num/100)*100;
}else if num>=10{
result+=keyArray[1][num/10-1];
num-=(num/10)*10;
}else{
result+=keyArray[0][num-1];
num-=num;
}
}
return result;
}
相关文章推荐
- [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
- leetcode12 Integer to Roman
- LeetCode12: Integer to Roman
- leetcode_12题——Integer to Roman(string,数学问题)
- LeetCode12~14 Integer to Roman/Roman to Integer/Longest Common Prefix
- [Leetcode] 12 - Integer to Roman
- Leetcode 12 Integer to Roman整数变罗马
- [LeetCode]12.Integer to Roman
- Java [leetcode 12] Integer to Roman
- [LeetCode]12 Integer to Roman
- Integer to Roman_Leetcode_#12
- [LeetCode 12] Integer to Roman
- leetcode.12----------Integer to Roman
- LeetCode 12 - Integer to Roman
- LeetCode 12 Integer to Roman(C,C++,Java,Python)
- [Leetcode] 12. Integer to Roman