阿里面试题

来源:1-1 哈希表基础

weixin_慕圣6334738

2022-01-27 04:23:03

老师你好想请教你几个阿里的面试题, 都不怎么会做:(


这道题arr是入参格式,最下面的comment是需要输出的格式样子,要求写一个方程list2tree来实现

https://img.mukewang.com/climg/61f1ad220978284b05590724.jpg


然后还有两个题目, 一个排序和一个洋葱圈模型, 面试官说很简单但是我很懵逼

https://img.mukewang.com/climg/61f1ad9d091247fb05960768.jpg











写回答

1回答

liuyubobobo

2022-01-27

问题 3 的本质就是给你了一个树中的所有边(parentid 指明了一个节点的父亲节点是谁),首先,你需要重建这棵树(所有的 parentid 向 id 连边),之后,按照这个格式打印输出出整个树。


(你给出的输出似乎有问题,因为 id =1 的中国结点下,应该还有 id = 6 的吉林省节点,id = 6 的吉林省节点下,应该还有 id = 7 的长春省节点。)


建树应该很简单,不多说了。递归的打印输出整棵树相对比较考察对递归的理解和编码能力。力扣上的这个问题是这样一个问题的简单版本:https://leetcode.com/problems/construct-string-from-binary-tree/ (只不过信息是一个数,递归的层次只需要使用括号表示就可以,但整体思路是一致的。)


==========


问题 1 就是使用一个自定义的排序函数对元素进行排序。


只看用例,排序的依据是:首先将每个字符串按照 . 分割成三个数,然后比较第一个数字,越大越靠前;如果第一个数字一样,则比较低二个数字,越大越靠前;如果一样则比较第三个数字,越大越靠前。


这是我根据你给出的用例猜的规则,具体规则还需要问面试官,但不管怎么样,就是做一个自定义排序。


==========


问题 2 不是一个算法问题,而是一个偏设计模式问题。具体实现上,要根据不同语言对函数式编程的支持特性而定。这里是一篇介绍洋葱模型在 js 中实现的文章,可以参考:https://www.haorooms.com/post/js_yangcong_cp



继续加油!:)

0
hiuyubobobo
回复
heixin_慕圣6334738
hp>是的,你的理解是正确的。数字的大小关系和相应数字的字符串的字典序关系不一定一致。一定要明确到底在比较什么。

h022-03-15
共8条回复

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2636 学习 · 1090 问题

查看课程