前言
我在面试中遇到了算法题,也是我第一次面试,也不知道是太紧张了还是太久没刷算法题了,感觉压有点懵的状态,所以当时面试的时候没有做出来或者说只做了一半没有做完。
面试完成后,我又重新审视了一下题目,我觉得我一定能做出来,因为面试官说他出的题目不难,我能做出来。最终我做出来了,发现就是关于字典的操作。
题目:
解题思路
- 首先乍一看,感觉挺乱的,没有什么头绪。
- 但是仔细发现,数据库中的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))