由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 刚才重新回顾了一下那题
相关主题
binary tree的in-order iterator怎么写?请问如何sort一个linked list?
发几个面试题F家面经
一个树,不一定是2叉树,让设计一个数据结构来serialize和 deserializeFB面试题:binary tree inorder successor
今天面的太惨了....问道G家的面试题。
做了一下merge BSTG题,把binary tree里面的sibling节点连接起来
攒人品,Twitter 电面题目几道F家面试题
贡献一道G家的onsite题和简单面经(已悲剧)bst中序遍历c++ class iterator
很可能被这题搞挂了,sort linked list贡献G电 估计挂了
相关话题的讨论汇总
话题: node话题: int话题: proot话题: pnode话题: null
进入JobHunting版参与讨论
1 (共1页)
w****x
发帖数: 2483
1
struct NODE
{
vector vecGUID;
NODE* nodes[256];

NODE() { memset(nodes, 0, sizeof(nodes)); }
};
void _inner_get_guid(NODE* pNode, const char* str, int k, vector& vec)
{
if (NULL == pNode)
return;
if (k <= 0)
{
vec = pNode->vecGUID;
return;
}
_inner_get_guid(pNode->nodes[*str], str+1, k-1, vec);
}
vector getGUID(const char* str, NODE* pRoot, int k)
{
vector vecRet;
if (NULL == pRoot || NULL == str || *str == 0 || k <= 0)
return vecRet;
_inner_get_guid(pRoot, str, k, vecRet);
return vecRet;
}
int GetTimes(const char* str, NODE* pRoot, int k)
{
if (NULL == pRoot || NULL == str || k <=0)
return -1;
int nLen = strlen(str);
if (nLen < k) return 0;
hash_map mp;
int nRet = 0;
for (int i = 0; i < nLen-k+1; i++)
{
vector vec = getGUID(str + i, pRoot, k);
for (vector::iterator it = vec.begin(); it != vec.end(); it++)
{
if (mp.find(*it) == mp.end())
mp[*it] = 1;
else mp[*it]++;
nRet = max(nRet, mp[*it]);
}
}
return nRet;
}
void _inner_insert_trie(NODE* pNode, const char* p, int guid)
{
if (NULL == p || pNode == NULL ||*p == 0)
return;
if (pNode->nodes[*p] == NULL)
pNode->nodes[*p] = new NODE();
pNode->nodes[*p]->vecGUID.push_back(guid);
_inner_insert_trie(pNode->nodes[*p], p+1, guid); //p+1 not p++
}
NODE* BuildTrie(const char* strs[], int guids[], int n)
{
if (strs == NULL || n <= 0)
return NULL;
NODE* pRoot = new NODE();
for (int i = 0; i < n; i++)
{
const char* p = strs[i];
while (*p != 0)
_inner_insert_trie(pRoot, p++, guids[i]);
}
return pRoot;
}
void test()
{
const char* strs[] = {
"abcdeacdefjgs",
"fabcesdef",
"13fsdfas",
"dageqwe",
"sadgwerq",
"asfgeqwr",
};
int guids[] = {0, 1, 2, 3, 4, 5};
NODE* pRoot = BuildTrie(strs, guids, 6);
int x = GetTimes("abcdef", pRoot, 3);
}
刚才手写花了大概25分钟, 两个小bug, 当场是预处理有一半没写完(现场大概提供30
分钟).
bug free是不追求了, 预处理没写完实在不因该, 想想自己居然从来没动手写过一个
trie...
忽然想起当年二爷在西雅图说的现场build trie树是基本要求, 当时想想没当回事,
果然关键时刻挂球了, 对二爷的敬仰又深了一层啊...
p*****2
发帖数: 21240
2
你这是哪公司的哪题呀?
l*********8
发帖数: 4642
3
f吧

【在 p*****2 的大作中提到】
: 你这是哪公司的哪题呀?
p*****2
发帖数: 21240
4

什么题呀?

【在 l*********8 的大作中提到】
: f吧
t****a
发帖数: 1212
5
:-),我也跟帖凑个热闹
把楼主的code重写了一遍,生成graphviz兼容的prefix tree然后产生出png图来。
总共只用了10行左右代码来产生前缀树。
code和结果图参见
http://kangtu.me/~kangtu/study/interview.html#sec-12
w****x
发帖数: 2483
6

很牛X啊, 难道是传说中的Python语言?

【在 t****a 的大作中提到】
: :-),我也跟帖凑个热闹
: 把楼主的code重写了一遍,生成graphviz兼容的prefix tree然后产生出png图来。
: 总共只用了10行左右代码来产生前缀树。
: code和结果图参见
: http://kangtu.me/~kangtu/study/interview.html#sec-12

t****a
发帖数: 1212
7
不好意思阿,画出来的图貌似不对。我再琢磨琢磨。

【在 w****x 的大作中提到】
:
: 很牛X啊, 难道是传说中的Python语言?

k***x
发帖数: 6799
8
这种题目要是以前没见过,现场思考,再写code,还能来得及么。。。

【在 w****x 的大作中提到】
: struct NODE
: {
: vector vecGUID;
: NODE* nodes[256];
:
: NODE() { memset(nodes, 0, sizeof(nodes)); }
: };
: void _inner_get_guid(NODE* pNode, const char* str, int k, vector& vec)
: {
: if (NULL == pNode)

w****x
发帖数: 2483
9

这题肯定没人见过, 思考因该很快就可以想到,10秒,就是code出来比较麻烦,再加
上给面试官解释,不过够强的话也可以做到。

【在 k***x 的大作中提到】
: 这种题目要是以前没见过,现场思考,再写code,还能来得及么。。。
F**********0
发帖数: 442
10
看不懂,啥语言?

【在 w****x 的大作中提到】
: struct NODE
: {
: vector vecGUID;
: NODE* nodes[256];
:
: NODE() { memset(nodes, 0, sizeof(nodes)); }
: };
: void _inner_get_guid(NODE* pNode, const char* str, int k, vector& vec)
: {
: if (NULL == pNode)

相关主题
攒人品,Twitter 电面题目请问如何sort一个linked list?
贡献一道G家的onsite题和简单面经(已悲剧)F家面经
很可能被这题搞挂了,sort linked listFB面试题:binary tree inorder successor
进入JobHunting版参与讨论
h*****n
发帖数: 188
11
兄弟.. clojure自己玩玩还行..
面试是真心不行啊..

【在 t****a 的大作中提到】
: 不好意思阿,画出来的图貌似不对。我再琢磨琢磨。
y*******g
发帖数: 6599
12
我们team有用clojure

【在 h*****n 的大作中提到】
: 兄弟.. clojure自己玩玩还行..
: 面试是真心不行啊..

h*****n
发帖数: 188
13
赞!

【在 y*******g 的大作中提到】
: 我们team有用clojure
t****a
发帖数: 1212
14
勉强hack好了,不过还是弄不明白这里头的执行顺序,太诡异了,真不能随便用全局变
量阿。
http://kangtu.me/~kangtu/study/interview.html#sec-12
有愿意改进的朋友请指点指点
PS: 画digraph需要给结点赋予唯一的名称,而生成一个hashmap表示这个树就没这个限
制,容易多了。

【在 y*******g 的大作中提到】
: 我们team有用clojure
w****x
发帖数: 2483
15

呵呵, 挺有意思

【在 t****a 的大作中提到】
: 勉强hack好了,不过还是弄不明白这里头的执行顺序,太诡异了,真不能随便用全局变
: 量阿。
: http://kangtu.me/~kangtu/study/interview.html#sec-12
: 有愿意改进的朋友请指点指点
: PS: 画digraph需要给结点赋予唯一的名称,而生成一个hashmap表示这个树就没这个限
: 制,容易多了。

t****a
发帖数: 1212
16
为什么不能用clojure面试呢?

【在 h*****n 的大作中提到】
: 兄弟.. clojure自己玩玩还行..
: 面试是真心不行啊..

p*****2
发帖数: 21240
17
这题一定要用trie吗?
y*******g
发帖数: 6599
18
主要是没几个面试官会。不容易判断水平
而且应用的实在太少。公司还是希望能判断出你的skill set是否match。

【在 t****a 的大作中提到】
: 为什么不能用clojure面试呢?
p*****2
发帖数: 21240
19

我发现大牛你怎么啥都会呀?

【在 y*******g 的大作中提到】
: 主要是没几个面试官会。不容易判断水平
: 而且应用的实在太少。公司还是希望能判断出你的skill set是否match。

c********t
发帖数: 5706
20
太牛了,拜服。
现场如果碰到这个题,俺只能从包里掏出算法书抄build trie

【在 t****a 的大作中提到】
: 勉强hack好了,不过还是弄不明白这里头的执行顺序,太诡异了,真不能随便用全局变
: 量阿。
: http://kangtu.me/~kangtu/study/interview.html#sec-12
: 有愿意改进的朋友请指点指点
: PS: 画digraph需要给结点赋予唯一的名称,而生成一个hashmap表示这个树就没这个限
: 制,容易多了。

相关主题
问道G家的面试题。bst中序遍历c++ class iterator
G题,把binary tree里面的sibling节点连接起来贡献G电 估计挂了
几道F家面试题Lowest common ancestor of two nodes of Binary Tree
进入JobHunting版参与讨论
t****a
发帖数: 1212
21
有道理阿...
我个人认为做data scientist到哪里几乎都得单枪匹马,还得高效率,所以养成就什么
快用什么的习惯,lisp / R / python组合 + literate programming我现在觉得是写
code最少的组合。
相比python和R,对付大规模计算的时候得上lisp,写的快run的也快。不过这些都是理
论知识,lisp菜鸟一枚。
linkedin的data scientist们都用啥兵器阿?

【在 y*******g 的大作中提到】
: 主要是没几个面试官会。不容易判断水平
: 而且应用的实在太少。公司还是希望能判断出你的skill set是否match。

y*******g
发帖数: 6599
22
囧,除了android和ios我没有一个能算会的。都是皮毛
现在正在努力学习javascript

【在 p*****2 的大作中提到】
:
: 我发现大牛你怎么啥都会呀?

l*****a
发帖数: 14598
23
有点OOD的思想好不?
拿这些C的东西来,不太合适

【在 w****x 的大作中提到】
: struct NODE
: {
: vector vecGUID;
: NODE* nodes[256];
:
: NODE() { memset(nodes, 0, sizeof(nodes)); }
: };
: void _inner_get_guid(NODE* pNode, const char* str, int k, vector& vec)
: {
: if (NULL == pNode)

y*******g
发帖数: 6599
24
不知道,下次和他们聊聊
感觉不同公司/team对这个title的理解不太一样 我接触的一个感觉就用pig什么

【在 t****a 的大作中提到】
: 有道理阿...
: 我个人认为做data scientist到哪里几乎都得单枪匹马,还得高效率,所以养成就什么
: 快用什么的习惯,lisp / R / python组合 + literate programming我现在觉得是写
: code最少的组合。
: 相比python和R,对付大规模计算的时候得上lisp,写的快run的也快。不过这些都是理
: 论知识,lisp菜鸟一枚。
: linkedin的data scientist们都用啥兵器阿?

p*****2
发帖数: 21240
25

这么说来你是完美的mobile大牛了。膜拜。

【在 y*******g 的大作中提到】
: 囧,除了android和ios我没有一个能算会的。都是皮毛
: 现在正在努力学习javascript

y*******g
发帖数: 6599
26
前端没前途,变得太快,天天忙于应付导致没什么设计,构架方面的积累。就记一些
api和有效期几个月的trick而已。
随便一个intern干2,3个月就到我的水平了。
二爷指点指点方向

【在 p*****2 的大作中提到】
:
: 这么说来你是完美的mobile大牛了。膜拜。

w****x
发帖数: 2483
27

面试官当时很轻描淡写的提了一下“可能有预处理加快效率”,但是说自己看着办,当
时马上想到trie了

【在 p*****2 的大作中提到】
: 这题一定要用trie吗?
w****x
发帖数: 2483
28

时间太紧张了,还得设计class接口什么的...

【在 l*****a 的大作中提到】
: 有点OOD的思想好不?
: 拿这些C的东西来,不太合适

t****a
发帖数: 1212
29
不敢当,偶就是个菜鸟初学者。这板上的题目好多都不会呢。

【在 c********t 的大作中提到】
: 太牛了,拜服。
: 现场如果碰到这个题,俺只能从包里掏出算法书抄build trie

l*****a
发帖数: 14598
30
就一个insert就够了

【在 w****x 的大作中提到】
:
: 时间太紧张了,还得设计class接口什么的...

相关主题
phone interview program with a small startup发几个面试题
Twitter电面未通过一个树,不一定是2叉树,让设计一个数据结构来serialize和 deserialize
binary tree的in-order iterator怎么写?今天面的太惨了....
进入JobHunting版参与讨论
l*****a
发帖数: 14598
31
其实二爷也根本没方向
没看还四处打听调查吗?

【在 y*******g 的大作中提到】
: 前端没前途,变得太快,天天忙于应付导致没什么设计,构架方面的积累。就记一些
: api和有效期几个月的trick而已。
: 随便一个intern干2,3个月就到我的水平了。
: 二爷指点指点方向

g**u
发帖数: 583
32

Mind to elaborate the question?
what's the guid used for? and what's the k used for?
thanks

【在 w****x 的大作中提到】
: struct NODE
: {
: vector vecGUID;
: NODE* nodes[256];
:
: NODE() { memset(nodes, 0, sizeof(nodes)); }
: };
: void _inner_get_guid(NODE* pNode, const char* str, int k, vector& vec)
: {
: if (NULL == pNode)

p*****2
发帖数: 21240
33

我比你惨多了。折腾来折腾去还是在C里边转悠。外边流行的技术什么都不会。

【在 y*******g 的大作中提到】
: 前端没前途,变得太快,天天忙于应付导致没什么设计,构架方面的积累。就记一些
: api和有效期几个月的trick而已。
: 随便一个intern干2,3个月就到我的水平了。
: 二爷指点指点方向

t*******2
发帖数: 292
34
学好C语言,走遍天下都不怕啊

【在 p*****2 的大作中提到】
:
: 我比你惨多了。折腾来折腾去还是在C里边转悠。外边流行的技术什么都不会。

p*****2
发帖数: 21240
35

我不知道我对题目理解的对不对,但是我可能先说说简单的算法,看他怎么说。

【在 w****x 的大作中提到】
:
: 时间太紧张了,还得设计class接口什么的...

p*****2
发帖数: 21240
36

问个OO问题就歇菜。

【在 t*******2 的大作中提到】
: 学好C语言,走遍天下都不怕啊
t****a
发帖数: 1212
37
光用pig的话做BI的工作都勉强,不用说探索性数据分析,建模和原型开发了。
Linkedin的scientists,肯定有绝活在手的。

【在 y*******g 的大作中提到】
: 不知道,下次和他们聊聊
: 感觉不同公司/team对这个title的理解不太一样 我接触的一个感觉就用pig什么

i***e
发帖数: 452
38
哥们, 你写的那么牛逼是不是让人觉得你背了答案呢? 一般这种题目总要是说你的解
题思路。 然后让你实现一个insertion function或者是一个lookup的function. 这个
考察才算是合理范围之类的. 还有为啥guid都出来了? 原题是什么来找?
w****x
发帖数: 2483
39

啊, 有人说hash table就可以了, 反正我说用trie那位老兄也不反对, 他说的题目很模
糊, 那个strs数组原来还说是存数据库里的, 存数据库不就是guid做索引吗, 还好我据
理力争化简成了数组. 不可能背答案, 这老兄说是他们工作中碰到的问题.

【在 i***e 的大作中提到】
: 哥们, 你写的那么牛逼是不是让人觉得你背了答案呢? 一般这种题目总要是说你的解
: 题思路。 然后让你实现一个insertion function或者是一个lookup的function. 这个
: 考察才算是合理范围之类的. 还有为啥guid都出来了? 原题是什么来找?

1 (共1页)
进入JobHunting版参与讨论
相关主题
贡献G电 估计挂了做了一下merge BST
Lowest common ancestor of two nodes of Binary Tree攒人品,Twitter 电面题目
phone interview program with a small startup贡献一道G家的onsite题和简单面经(已悲剧)
Twitter电面未通过很可能被这题搞挂了,sort linked list
binary tree的in-order iterator怎么写?请问如何sort一个linked list?
发几个面试题F家面经
一个树,不一定是2叉树,让设计一个数据结构来serialize和 deserializeFB面试题:binary tree inorder successor
今天面的太惨了....问道G家的面试题。
相关话题的讨论汇总
话题: node话题: int话题: proot话题: pnode话题: null