Leetcode 12. Integer to Roman
https://leetcode.com/problems/integer-to-roman/submissions/
using namespace std;
class Solution {
public:
string reps="IVXLCDM";
string itor(int k,int l){
switch(k){
case 0:
case 1:
case 2:
case 3: return string(k,reps[l]);
case 4: return reps[l]+string(1,reps[l+1]);
case 5: return string(1,reps[l+1]);
case 6:
case 7:
case 8: return reps[l+1]+string((k%5),reps[l]);
case 9: return reps[l]+string(1,reps[l+2]);
}
return "";
}
string intToRoman(int num) {
string ans;
ans+=itor(num/1000,6),num%=1000;
ans+=itor(num/100,4),num%=100;
ans+=itor(num/10,2),num%=10;
ans+=itor(num,0);
return ans;
}
};
python版本
class Solution:
def intToRoman(self, num: int) -> str:
d4=['','M','MM','MMM']
d3=['','C','CC','CCC','CD','D','DC','DCC','DCCC','CM']
d2=['','X','XX','XXX','XL','L','LX','LXX','LXXX','XC']
d1=['','I','II','III','IV','V','VI','VII','VIII','IX']
ans=''
ans+=d4[num//1000]
num%=1000
ans+=d3[num//100]
num%=100
ans+=d2[num//10]
num%=10
ans+=d1[num]
return ans