MBI sold at 5.3!# Stock
z*8
1 楼
没签NDA, 我就说说了。
一共四轮。
第一轮:
..behavior questions. Most difficult part in your project.
1. BFS.... 我先用了两个queue, 被要求改成一个, 再被要求在node的结构里加一个
isMarked的property来做, 感觉有点无聊
2. String compression, 比如 ACCCDD 变成A3C2D
第二轮:
设计一个lexicon使得可以支持wild card。
比如lexicon里面有单词“apple”, 那么query = "apple", "a?ple" 或者 “a*”都
返回true。 “apble”, "a?ble", "a*l" 返回false。
其中 ‘?’表示任意字符出现一次; ‘*’表示任意字符出现0或多次
第三轮:
这轮是大佬architect来面的, 自然是system design。。。
用户在每次完成一个task之后, 都会得到一个分数, 设计系统使得用户可以立刻知道
他总分的排名, 并且可以选择在过去3天/7天/一个月的排名, 要求从security,
scalability 等方面分析
第四轮:
用户在做某个task的时候会不断向server发出quest, 这个quest包含了userid和
taskid, 都是unit类型的。 设计实现可以得到daily active user 和 last 30 day
active user的数量的方法。 设计要求兼顾速度和节省存储空间。
最后讨论如果要把每天的信息serialize到一个local file, 应该怎么做才能节省空间。
一共四轮。
第一轮:
..behavior questions. Most difficult part in your project.
1. BFS.... 我先用了两个queue, 被要求改成一个, 再被要求在node的结构里加一个
isMarked的property来做, 感觉有点无聊
2. String compression, 比如 ACCCDD 变成A3C2D
第二轮:
设计一个lexicon使得可以支持wild card。
比如lexicon里面有单词“apple”, 那么query = "apple", "a?ple" 或者 “a*”都
返回true。 “apble”, "a?ble", "a*l" 返回false。
其中 ‘?’表示任意字符出现一次; ‘*’表示任意字符出现0或多次
第三轮:
这轮是大佬architect来面的, 自然是system design。。。
用户在每次完成一个task之后, 都会得到一个分数, 设计系统使得用户可以立刻知道
他总分的排名, 并且可以选择在过去3天/7天/一个月的排名, 要求从security,
scalability 等方面分析
第四轮:
用户在做某个task的时候会不断向server发出quest, 这个quest包含了userid和
taskid, 都是unit类型的。 设计实现可以得到daily active user 和 last 30 day
active user的数量的方法。 设计要求兼顾速度和节省存储空间。
最后讨论如果要把每天的信息serialize到一个local file, 应该怎么做才能节省空间。