今天面试被问了个算法,不会,请教下

2020-05-08 02:51:23 +08:00
 ruandao

大致题目是,譬如书名是 数据结构预算法

然后搜索的时候,输入 "数 算"

要怎么设计,去匹配搜索

2248 次点击
所在节点    问与答
8 条回复
hehheh
2020-05-08 03:00:49 +08:00
trie 吧
binux
2020-05-08 03:17:47 +08:00
搜索什么?

从一堆书里面搜到这本?
从字符串中搜索"数 算"的位置?
判断字符串是否符合包含"数 算"子串?
lihongming
2020-05-08 03:24:50 +08:00
@hehheh 字很多、数据集很大的话,会不会很慢?

个人觉得用桶可能更直接一些,每个字一个桶,把这两个桶取出来求交集
shikimoon
2020-05-08 03:45:01 +08:00
这种属于搜索查询中的模糊匹配场景,可以用分词+倒排索引,然后做字符串匹配。简单的用编辑距离也行
hehheh
2020-05-08 04:15:38 +08:00
@lihongming 对,这样应该会比 trie 快很多。
ruandao
2020-05-08 05:36:11 +08:00
@binux 一堆书名中搜索匹配的书名
sadfQED2
2020-05-08 08:12:59 +08:00
倒排索引可以解决,分词的时候根据他的要求分词,比如他这个要单个字搜那就单个字分词。你可以看看 es 的搜索原理
HuHui
2020-05-08 09:00:10 +08:00
基本就冲着 es 去了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/669484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX