虽然是中等难度实际上不难,就是要搞清楚罗马数字的匹配方式,一般大家只看到十几就不知道后边了。重点就是1,4,5,9的进位方式。
class Solution {
// I: 1
// IV: 4
// V: 5
// IX: 9
// X: 10
// XL: 40
// L: 50
// XC: 90
// C: 100
// CD: 400
// D: 500
// CM: 900
// M: 1000
public static String[] dict = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
public static int[] dictNums = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
public String intToRoman(int num) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < 13; i++ ) {
while(num >= dictNums[i]) {
num -= dictNums[i];
builder.append(dict[i]);
}
}
return builder.toString();
}
}