LeetCode 第十二题 整数转罗马数字
给定一个整数,将其转为罗马数字。
输入保证在 1 到 3999 之间。
在这里首先需要了解一下罗马数字的定义:罗马数字百度百科,我们查找了几种方法,发现有一种最简单暴力的方法,非常适合本题。在罗马数字百度百科中有C++的代码,我们将其作为参考。
Java
public String intToRoman(int num) {
String M[] = {"", "M", "MM", "MMM"};
String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
return M[num/1000] + C[(num%1000)/100] + X[(num%100)/10] + I[num%10];
}
C++
class Solution
{
public:
string intToRoman(int num)
{
string M[]={"","M","MM","MMM"};
string C[]={"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
string X[]={"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
string I[]={"","I","II","III","IV","V","VI","VII","VIII","IX"};
return M[num/1000]+C[(num%1000)/100]+X[(num%100)/10]+I[(num%10)];
}
};
python
class Solution(object):
def intToRoman(self, num):
M = ["", "M", "MM", "MMM"]
C = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]
X = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"]
I = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]
return M[int(num / 1000)] + C[int((num % 1000) / 100)] + X[int((num % 100) / 10)] + I[num % 10]