https://leetcode-cn.com/problems/integer-to-roman/
做一个类似哈希表的映射关系
class Solution {
public:
string intToRoman(int num) {
int dict[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};//索引
string val[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};//值
string res;
for(int i=0;i<=12;i++)
{
while(num>=dict[i]){//只要当前值比dict中的值大,就把这个dict索引对应的值存到res中
res +=val[i];
num -= dict[i];//加完以后num要自减一次
}
}
return res;
}
};
该博客介绍了一个C++实现的算法,将整数转换为罗马数字。通过创建哈希映射关系,遍历整数并逐次减去罗马数字表示的对应值,构建出罗马数字字符串。该算法使用了两个数组,一个存储罗马数字对应的值,另一个存储相应的字符表示。
2696

被折叠的 条评论
为什么被折叠?



