社区
数据结构与算法
帖子详情
GOOGLE的一道题
ace00
2008-04-02 12:04:38
给定一个字符串例如“appleuwebananasdf”,和一个词典库(里面有apple ,banana ……),将其分词。结果应该为 “apple uwe banana sdf ”。
注意考虑词典库的大小。
请给出实现代码,并描述其时间复杂度。
大家讨论一下。
扫描字符串需要O(n^2),然后查字典用HASH表?内存占用太高了。有什么好办法?
...全文
800
31
打赏
收藏
GOOGLE的一道题
给定一个字符串例如“appleuwebananasdf”,和一个词典库(里面有apple ,banana ……),将其分词。结果应该为 “apple uwe banana sdf ”。 注意考虑词典库的大小。 请给出实现代码,并描述其时间复杂度。 大家讨论一下。 扫描字符串需要O(n^2),然后查字典用HASH表?内存占用太高了。有什么好办法?
复制链接
扫一扫
分享
转发到动态
举报
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)
一道
Google
竞赛
题
的解法
一道
Google
竞赛
题
的解法,看看
Google
笔试
题
(附答案)
想进入理想中的
google
吗,先从这套
题
开始吧!
Google
在美国《麻省技术评论》、《LinuxJournal》、《Mensa》、《今日物理》等几本专业杂志上,刊登了一份 “
Google
实验室能力倾向测试”。
AB序列 O(N^2)实现 算法
题
AB序列,是
一道
经典的算法
题
。可以
google
搜索“AB”序列。 这儿是Java实现代码
100层楼2个鸡蛋C程序递归实现
来自
一道
google
面试
题
,本资源以VC编译器下的C递归实现,楼层数和鸡蛋数作为可变输入参数,输出(测试出保证鸡蛋不破的最高安全层的)最小次数。比如100层楼2个鸡蛋输出结果14:表示2个鸡蛋测试100层楼以获得最高安全层的最小次数为14次,测试方法也有输出,即第一个鸡蛋每段测试层数分别为14,13,,,,1.第二个鸡蛋每隔一层测试一次。另外程序中带有证明过程。
程序员面试金典 第5版
本书是原谷歌资深面试官的经验之作,层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。第1~7 章主要涉及面试流程解析、面试官的幕后决策及可能提出的问
题
、面试前的准备工作、对面试结果的处理等内容;第8~9 章从数据结构、概念与算法、知识类问
题
和附加面试
题
4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的150 道编程面试
题
,并针对每
一道
面试
题
目,分别给出了详细的解决方案。
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章