拼多多三面+timeline
一面0314,二面0323,三面0328,hr面0410,信息确认0417,意向0418。
三面0328
- 自我介绍
- 算法题:
- 题面:
通过字典树(Trie)来找出所有的前缀对(Prefix Pair),前缀对的意思,A单词是B单词的前缀,那么(A单词, B单词)就是一个前缀对。
例如
输入:words = ["abs", "app", "be", "apple", "bee", "better", "bet", "absolute"]
输出: [("app", "apple"), ("abs", "absolute"), ("be", "bee"), ("be", "better"), ("be", "bet"), ("bet", "better")]
要求
先通过输入来构建一个字典树,然后查找字典树找出所有前缀对。
如,上述输入的字典树是
[root]
/ \
a b
/ \ |
b p e
| | / \
s p e t
| | |
o l t
| | |
l e e
| |
u r
|
t
|
e
备注
1. 输入可以用各个语言合适的方式,比如一个字符串的数组,或是字符串的列表
输出也是类似的。
输入不需要从标准输入读取。
2. 输入的单词只会由26个小写字母组成。不会有重复的单词,不会有空字符串。
- 内部类 static class 和 class 不同的底层原因?
- 挑rpc项目进行介绍实现难点
- 我说TCP的粘包半包,他不认可,为什么普通的文件网络io没有这个问题?
- 序列化算法的不同
- json序列化的优缺点
- 优点:易读
- 缺点:反序列化解析慢,字符串解析慢,体积大,字段名占用了额外空间
- 变长编码如何实现(参考UTF-8)
- 注册发现问题:除了把zookeeper地址写死,别的方案?可以通过域名解析,但域名解析服务器的地址要写死
- 反问:业务介绍:偏基础架构,可能做消息队列、服务注册发现之类的后端开发要解决的问题