温锦文欧普厨电及净水器总代理 发表于 2024-9-3 23:14:51

leetcode 12. 整数转罗马数字

https://i-blog.csdnimg.cn/direct/bca19af17c194d19be923e126eae20bf.png
https://i-blog.csdnimg.cn/direct/02dfed15a3094e3e8cb59c96b5b397e9.png
解题思路
1.首先,将值与对应字符用字典来表示,然后将符号对应的值按有序顺序存储至列表中sums
2.将要转换的整数转换成列表形式,遍历列表,每次遍历:


[*]将值取出来算出对应地点位置的现实值 如 32 对应列表 则 3现实值应为 3 x 101 = 30 2
现实值为 2 x 100
[*]盘算出现实值后,将对应的值替换成对应的罗马字符,此时从列表末尾开始遍历sums,找到列表比现实值小的第一个值,这个值所代表的键值对即为现实值要替换罗马数字的一部分,依次查找至现实值=0,则代表已找到此现实值所表示的罗马数字
代码
class Solution(object):
    def intToRoman(self, num):
      """
      :type num: int
      :rtype: str
      """
      dict1 = {
            "1":"I",
            "4":"IV",
            "5":"V",
            "9":"IX",
            "10":"X",
            "40":"XL",
            "50":"L",
            "90":"XC",
            "100":"C",
            "400":"CD",
            "500":"D",
            "900":"CM",
            "1000":"M"
      }
      sums =
      s = ''
      t =
      count = len(t)
      for i in range(count):
            nums = t*pow(10,count-i-1)
            while nums>0:
                for j in range(len(sums)):
                  if sums<=nums:
                        s=s+dict1)]
                        nums-=sums
                        break
      return s


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: leetcode 12. 整数转罗马数字