leetcode35. Search Insert Position
leetcode9.Palindrome Number
leetcode12.十进制数转化为罗马数字
这是罗马数字转为十进制数的后序
题目要求:将十进制数字转化为罗马数字,数值范围是[1,3999]
在罗马数字转化为十进制数的博客中,我简单的介绍了一下如何将罗马数字转化为十进制数字。在这道题目里,我们需要进一步了解十进制数转换为罗马数字的协议
- 罗马单个数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)
- 可以被减去的值只有I(1)、X(10)、C(100),且每个值最多只可以减去一次
- 左减时不可以跨位数,例如99不能被表示为IC,而是XCIX
- 多个相同字母连续出现时表示相加,但是字母不能重复出现超过4次
综上所述,个位上的数可以由I、V、X表示出来,同理,十位上的树可以由X、L、C表示,百位上可以由C、D、M表示,千位上则为M(数字不超过3999)
所以可以分别对整数的每一位上的值进行计算,得出相应的罗马数字值,并最后合并为最终得罗马数字