012. Integer to Roman [Medium]

class Solution {
public:
string intToRoman(int num) {
string result = "";
int a[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4,
1};
string b[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X",
"IX", "V", "IV", "I"};
int index = 0, cnt;
while(num > 0) {               //eg:如何将 954 = 900 + 50 + 4
cnt = num / a[index];
while(cnt--) result += b[index];//积累while{cnt--}
num = num % a[index];
index++;
}
return result;
}
};

1.while( s[i] != s[j] ){i++} 功能向
实现查找,使得i指向的位置满足s[i] == s[j]

2.while(cnt – ){} 满足条件则循环

映射关系 用同下标实现

eg:
数字 对应 Roman
int a[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4,
1};
string b[] = {“M”, “CM”, “D”, “CD”, “C”, “XC”, “L”, “XL”, “X”,
“IX”, “V”, “IV”, “I”};

a[index] 即和 b[index] 对应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值