GOOGLE的一道题

ace00 2008-04-02 12:04:38
给定一个字符串例如“appleuwebananasdf”,和一个词典库(里面有apple ,banana ……),将其分词。结果应该为 “apple uwe banana sdf ”。
注意考虑词典库的大小。

请给出实现代码,并描述其时间复杂度。

大家讨论一下。

扫描字符串需要O(n^2),然后查字典用HASH表?内存占用太高了。有什么好办法?
...全文
800 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
cllr 2008-05-29
  • 打赏
  • 举报
回复
你可以去找一下double-array trie,这个对于静态字符串查找效率比较高
zhangjinpengchina 2008-05-29
  • 打赏
  • 举报
回复
trie树
xiang37 2008-05-27
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 fuqd273 的回复:]
xuexi
[/Quote]
梦无痕123 2008-05-26
  • 打赏
  • 举报
回复
up
huangyongcheng 2008-05-25
  • 打赏
  • 举报
回复
觉得字典可以用键树存储,然后再查找匹配。
Dancing_Sea 2008-05-24
  • 打赏
  • 举报
回复
字典树比较有效
hash方法数据量中等规模的时候比较不错

10万词汇,hash就慢了,字典树查询不比hash慢

另外实际使用中,字典都是存好的,并不是随用随建立

他没有提最大最小分词,那么就都采纳。无非就是栈
搜索要的是全面
fuqd273 2008-05-14
  • 打赏
  • 举报
回复
xuexi
quanwuling 2008-05-14
  • 打赏
  • 举报
回复
扫描字符串的时侯发现A字符,则在内存中迅速建立A索引(以a开头)的词典HASH,这样词典在内存中就不会太大,而且也可以完整的将以a开头的单词配置完。
a匹配完后匹配剩下的,以u开头的,这样在内存中迅速再建立u索引词典HASH。

这样几乎只需要一次小的扫描,不需要扫描整个字符串。而且扫描后的单词不需要再次处理。关键点应该是处理词典库。我觉得词典库还是应该以一种优化的索引方式存储,这样加载以a或者其它字符开头的词典时效率是最快的。
shu_yoyo 2008-05-11
  • 打赏
  • 举报
回复
想想
wwb198686 2008-05-11
  • 打赏
  • 举报
回复
就是有点难度啊,要好好的想一下的。
baiyizhujian 2008-05-10
  • 打赏
  • 举报
回复
实质上有些难度的
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
以后需再关注,现在先帮你顶一下
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
shshsh_0510 2008-04-08
  • 打赏
  • 举报
回复
这个感觉用hash不好,用b树之类,一般字典库在整个空间很稀疏,对于查找的否定结果应该效率更高
ace00 2008-04-07
  • 打赏
  • 举报
回复
面试题目有机会吧代码写出来吗?
azhen 2008-04-04
  • 打赏
  • 举报
回复
基本上对于这个问题,是很少用hash的,因为一般情况下,字典都是非常庞大,很可能在内存里面都存储不了....
比较通用的方法是建立一颗多路树,每个节点下面26个节点,a,b,c,d.....

然后使用反向减字最大匹配法进行切割匹配,这个是天网目前使用的中文切词方法.

如果字典中单词有n个,带切割的句子长度为m
那么时间复杂度是. mlgn

ace00 2008-04-03
  • 打赏
  • 举报
回复
关注的人不多呀
fire_woods 2008-04-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 linyai 的回复:]
最少分词法,从后向前切,可以考虑一下,时间复杂O(n)* o(1)(HASH无冲突)
[/Quote]

能说一下具体实现吗?
cyzhang811 2008-04-03
  • 打赏
  • 举报
回复
看来我还是菜鸟啊
matchboy 2008-04-02
  • 打赏
  • 举报
回复
mark
加载更多回复(11)

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧