【摘要】 目录
第1题:整数转罗马数字
第2题:电话号码的字母组合
第3题:二叉树的所有路径
第4题:砖墙
第5题:下一个排列
第6题:括号生成
第7题:删除并获得点数
第8题:全排列
第9题:颜色分类
第10题:字母异位词分组力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
第1题:整数…
目录
力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
第1题:整数转罗马数字
试题要求如下:
解题思路:
1、建立两个数组,分别是数值数值以及罗马字符数组,这两个数组的罗马数与数组值对应;
2、找对应的罗马字符;
3、将罗马字符拷贝进输出字符串中。
回答(C语言):
#include<string.h>
char * intToRoman(int num){
//step1:定义数组
int s[13] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};//数值数组
char a[13][3] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};//罗马字符数组
char *res = (char *)calloc(16,sizeof(char));
int count = 0;//罗马字符拷贝次数
//step2:找对应的罗马字符
for(int i = 0;i < 13;i++){
count = num / s[i];
num %= s[i];
//step3:拷贝罗马字符
for(int j = 0;j < count;j++){
strcat(res,a[i]);//"strcat":该函数是将a[i]的字符串拷贝到res后面
}
}
return res;
}
© 版权声明文章版权归作者所有,未经允许请勿转载。THE END
喜欢就支持一下吧
相关推荐