上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

面试中问到的算法题。————目录树生成

guduadmin221月前

前言

我在面试中遇到了算法题,也是我第一次面试,也不知道是太紧张了还是太久没刷算法题了,感觉压有点懵的状态,所以当时面试的时候没有做出来或者说只做了一半没有做完。

面试完成后,我又重新审视了一下题目,我觉得我一定能做出来,因为面试官说他出的题目不难,我能做出来。最终我做出来了,发现就是关于字典的操作。

题目:

面试中问到的算法题。————目录树生成,第1张

解题思路

  • 首先乍一看,感觉挺乱的,没有什么头绪。
  • 但是仔细发现,数据库中的parent_id字段都换成了children,因此首先把这一步完成了。
  • 遍历数据库,去掉parent_id字段。注意:至于为什么不直接替换,因为字典是不可变的数据类型,所以需要删除后再添加。
  • 然后添加children并赋值空列表。
  • 最后倒序遍历,把后一个的字典放到前一个字典的children的空列表中。
  • 至此,题目完成。

    Code

    # -*- coding: utf-8 -*-
    # @Time        : 2024/2/1 19:29
    # @File        : TEST.py
    # @Description : None
    # ----------------------------------------------
    # ☆ ☆ ☆ ☆ ☆ ☆ ☆ 
    # >>> Author    : Kinght_123
    # >>> Mail      : 1304662247@qq.com
    # >>> Blog      : tim1304662247.blog.csdn.net
    # ☆ ☆ ☆ ☆ ☆ ☆ ☆
    ls = [{"id": 1, "parent_id": 0, "name": "a"},
          {"id": 3, "parent_id": 1, "name": "c"}]
    def func(ls):
        for i in range(len(ls)):
            new_dic = ls[i]
            del new_dic["parent_id"]
        for i in range(len(ls)):
            ls[i]["children"] = []
        for i in range(len(ls)-1, 0, -1):
            ls[i - 1]['children'] = ls[i]
        return ls[0]
    print(func(ls))
    

    运行结果

    面试中问到的算法题。————目录树生成,第2张

网友评论

搜索
最新文章
热门文章
热门标签
 
 梦见自己拉屎是怎么回事  坟墓的象征意义  睡觉老做梦什么原因