LeetCode题解——整数转罗马数字
- 题目介绍
- 解题思路
- 将整数转换为罗马数字,从最大值开始转换
- 首先创建一个整数与罗马数字对照关系的字典dict,便于查询
- 然后遍历dict,只要目标数字比当前指向的罗马数字大,就减去这个罗马数字对应的整数值,同时将罗马数字保存到结果string
- 知道目标数字变为0,即全部转换完成
- 代码示例
class Solution {
public:
string intToRoman(int num) {
vector<pair<string,int>> dict ={{"M",1000},{"CM",900},{"D",500},{"CD",400},{"C",100},{"XC",90},{"L",50},{"XL",40},{"X",10},{"IX",9},{"V",5},{"IV",4},{"I",1}};
string res;
while(num!=0){
for(auto & x:dict) {
if(num>=x.second) {
res += x.first;
num -= x.second;
break;
}
}
}
return res;
}
};