由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 谁能写个trie的框架?
相关主题
amazon面试题目讨论贴2请教一个二叉树镜像问题
分享:non-recursive breadth first search and depth first search algorithm in C白板代码,支持O(1)时间GetMin的stack
问一下prefix tree (trie) 的题目请教一道面试题
说说下午的面试经历。。。题目: string pattern matching w/ wildcard (.*)
面经Facebook phone screen
一道google面经难题刚刚电面bloomberg,被问到一个没看到过的问题
bloomberg onsite & offer什么时候用SUFFIX TREE,什么时候用TRIE
一道面试题large file的一道题
相关话题的讨论汇总
话题: trie话题: str话题: cur话题: children话题: index
进入JobHunting版参与讨论
1 (共1页)
O******i
发帖数: 269
1
要是被要求白板写trie的code怎么写?比如输入手机数字键,蹦出一系列匹配的单词,
比如2键上有abc三个字母。
r****r
发帖数: 37
n*******w
发帖数: 687
3
这是两个小问题吧。
先产生permutation,再去dictionary里边查。后者可以用trie存储字典。比较适合面
试白板的是前一部分。

【在 O******i 的大作中提到】
: 要是被要求白板写trie的code怎么写?比如输入手机数字键,蹦出一系列匹配的单词,
: 比如2键上有abc三个字母。

k****n
发帖数: 369
4
依赖于数据结构的算法,尤其是trie这种东西,关键是把类的数据想好
然后把接口函数设计好,然后问面试官需要填哪个就写哪个
全写下来是不可能的,也没那么大白板

【在 O******i 的大作中提到】
: 要是被要求白板写trie的code怎么写?比如输入手机数字键,蹦出一系列匹配的单词,
: 比如2键上有abc三个字母。

A*****i
发帖数: 3587
5
知道一种数据结构,算法你自己完成吧
typedef struct node{
node * next;
int word[26];
}trieNode;
f*******t
发帖数: 7549
6
struct Trie
{
Trie();
~Trie();
Trie *children[26];
bool isEnd;
};
Trie::Trie()
{
for(int i = 0; i < 26; i++)
children[i] = NULL;
isEnd = false;
}
Trie::~Trie()
{
for(int i = 0; i < 26; i++) {
if(children[i]) {
delete children[i];
children[i] = NULL;
}
}
}
void TrieInsert(Trie *root, const char *str)
{
if(!str || *str < 'a' || *str > 'z') {
printf("Invalid line\n");
return;
}

Trie *cur = root;
while(*str >= 'a' && *str <= 'z') {
int index = (int)(*str - 'a');
if(cur->children[index] == NULL) {
cur->children[index] = new Trie();
}
cur = cur->children[index];

str++;
}

if(cur != root)
cur->isEnd = true;
}
int TrieSearch(Trie *root, const char *str)
{
if(!str || *str < 'a' || *str > 'z') {
printf("Invalid string!\n");
return ENTRYNOTFOUND;
}

printf("Looking for word %s\n", str);

Trie *cur = root;
while(*str >= 'a' && *str <= 'z') {
int index = (int)(*str - 'a');
if(cur->children[index]) {
cur = cur->children[index];
str++;
}
else
return ENTRYNOTFOUND;
}

if(cur != root && cur->isEnd)
return ENTRYFOUND;
else
return NOTCOMPLETE;
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
large file的一道题面经
amazon interview一道google面经难题
问个Print null的问题bloomberg onsite & offer
白板写bug free code真的那么重要么?一道面试题
amazon面试题目讨论贴2请教一个二叉树镜像问题
分享:non-recursive breadth first search and depth first search algorithm in C白板代码,支持O(1)时间GetMin的stack
问一下prefix tree (trie) 的题目请教一道面试题
说说下午的面试经历。。。题目: string pattern matching w/ wildcard (.*)
相关话题的讨论汇总
话题: trie话题: str话题: cur话题: children话题: index