f*****d 发帖数: 36 | 1 在面试中碰到了这个问题
如何做到search by name and search by phone number 都要很快
用了两个hashMap做,但感觉不是很好
请问大家有什么好方法吗,谢谢了 |
l******s 发帖数: 3045 | 2 可以考虑两个Trie,一个Name,一个数字,在end of word和end of number的节点上互连
public class NameTrieNode
{
public NameTrieNode[26] Next;
public bool EOW;
public string Name;
public HashSet;
}
public class NumberTrieNode
{
public NumberTrieNode[10] Next;
public bool EON;
public string Number;
public HashSet;
} |
b**********5 发帖数: 7881 | 3 你这个design, 我也晕了。。。
互连
【在 l******s 的大作中提到】 : 可以考虑两个Trie,一个Name,一个数字,在end of word和end of number的节点上互连 : public class NameTrieNode : { : public NameTrieNode[26] Next; : public bool EOW; : public string Name; : public HashSet; : } : public class NumberTrieNode : {
|
j**********3 发帖数: 3211 | |
l******s 发帖数: 3045 | 5 牛肉姐晕在哪里?
【在 b**********5 的大作中提到】 : 你这个design, 我也晕了。。。 : : 互连
|
f*****d 发帖数: 36 | 6 谢谢大家的答复
应该是OOD,interviewer抓住的一点是什么data structure可以满足这个既search by
name又search by number |
T****U 发帖数: 3344 | 7 两个hashmap为什么不好?相当于做两个索引,插入删除注意一下就好了
by
【在 f*****d 的大作中提到】 : 谢谢大家的答复 : 应该是OOD,interviewer抓住的一点是什么data structure可以满足这个既search by : name又search by number
|
p*u 发帖数: 2454 | 8 boost multi-index
by
【在 f*****d 的大作中提到】 : 谢谢大家的答复 : 应该是OOD,interviewer抓住的一点是什么data structure可以满足这个既search by : name又search by number
|
z*********8 发帖数: 2070 | 9 interviewer扩展一下,要求边输入字母/数字边给出当前搜索结果就不好用了
【在 T****U 的大作中提到】 : 两个hashmap为什么不好?相当于做两个索引,插入删除注意一下就好了 : : by
|
z***e 发帖数: 209 | 10 即时搜索现在主流是trie吗?有了解的可以说说trie最多可以支持多大的字典? |
|
|
T****U 发帖数: 3344 | 11 那可以加prefix trie, 字母数字一起,然后hash回原来的电话簿Object
【在 z*********8 的大作中提到】 : interviewer扩展一下,要求边输入字母/数字边给出当前搜索结果就不好用了
|
T****U 发帖数: 3344 | 12 一个电话簿能有多大?除非是黄页,黄页可以按首字母数字分级索引到不同的机器和数
据库,也不困难。
【在 z***e 的大作中提到】 : 即时搜索现在主流是trie吗?有了解的可以说说trie最多可以支持多大的字典?
|
n*******s 发帖数: 17267 | 13 额是土人,不刷题,你想想java 的hashcode()
by
【在 f*****d 的大作中提到】 : 谢谢大家的答复 : 应该是OOD,interviewer抓住的一点是什么data structure可以满足这个既search by : name又search by number
|
n*******s 发帖数: 17267 | |
n*******s 发帖数: 17267 | 15 k,v can be name,phone;phone,name;name+phone,result |
s*****m 发帖数: 8094 | 16 逼格正特么高啊。
互连
【在 l******s 的大作中提到】 : 可以考虑两个Trie,一个Name,一个数字,在end of word和end of number的节点上互连 : public class NameTrieNode : { : public NameTrieNode[26] Next; : public bool EOW; : public string Name; : public HashSet; : } : public class NumberTrieNode : {
|
i*****h 发帖数: 1534 | 17 hashmap+trie啊,以前帖子不是已经讨论过了。 |