leetcode No.12 整数转罗马数字
今日刷题:
从结果来看,内存占用排名较低,后续再想想其他方便的方法。
char * intToRoman(int num){
const int values[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
const char* symbols[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
char *res = (char *)malloc(sizeof(char) * 16);
int i = 0;
int j = 0;
int temp = num;
memset(res, '\0', sizeof(char) * 16);
for (i = 0; i < (sizeof(values) / sizeof(values[0])); i++) {
if (temp - values[i] >= 0) {
strcpy(res + strlen(res), symbols[i]);
temp -= values[i];
if (temp >= values[i]) {
i--;
}
}
}
return res;
}