Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
public class Solution {
private static String M[] = {"","M","MM","MMM"};
private static String C[] = {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
private static String X[] = {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
private static String I[] = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
public String intToRoman(int num) {
StringBuilder roman = new StringBuilder();
return roman.append(M[num/1000]).append(C[(num%1000)/100]).append(X[(num%100)/10]).append(I[num%10]).toString();
//当在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能。
}
}
之前不知道罗马数字的我是内心崩溃的,发现不难的题也做不出来。
重点提一下:当在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能。如果用String连接在一起提交的话,用时排名一下子就到很后面去了,这个方法用时打败了98%~