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

前言

我在面试中遇到了算法题,也是我第一次面试,也不知道是太紧张了还是太久没刷算法题了,感觉压有点懵的状态,所以当时面试的时候没有做出来或者说只做了一半没有做完。
面试完成后,我又重新审视了一下题目,我觉得我一定能做出来,因为面试官说他出的题目不难,我能做出来。最终我做出来了,发现就是关于字典的操作。
题目:

解题思路

  • 首先乍一看,感觉挺乱的,没有什么头绪。
  • 但是仔细发现,数据库中的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))

运行结果

相关推荐

  1. 面试常被数据库面试及答案

    2024-02-02 11:10:04       51 阅读
  2. 面经——面试计算机网络相关问题

    2024-02-02 11:10:04       54 阅读
  3. 面试会被GIT问题解答(含答案)

    2024-02-02 11:10:04       33 阅读
  4. 面试如果被项目遇到难题如何解决

    2024-02-02 11:10:04       22 阅读
  5. vue3 ts面试面试(连更.......)

    2024-02-02 11:10:04       56 阅读
  6. MySQL几个常面试

    2024-02-02 11:10:04       38 阅读
  7. Redis常面试

    2024-02-02 11:10:04       70 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 11:10:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 11:10:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 11:10:04       82 阅读
  4. Python语言-面向对象

    2024-02-02 11:10:04       91 阅读

热门阅读

  1. Centos Ubuntu 离线安装git

    2024-02-02 11:10:04       49 阅读
  2. c/c++ | 优先队列 | 大根堆、小根堆

    2024-02-02 11:10:04       55 阅读
  3. 【Cocos入门】AudioEngine函数的使用

    2024-02-02 11:10:04       55 阅读
  4. 免交互 、 字符处理与高级变量

    2024-02-02 11:10:04       38 阅读
  5. Django_项目基本配置

    2024-02-02 11:10:04       53 阅读
  6. LVS负载均衡对udp流量进行参数调整一例

    2024-02-02 11:10:04       48 阅读