San Jose各个房价 <1.5m 区域买房总结

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 3633|回复: 12
收起左侧

snapchat OA 2.14.16 解法之我见。

[复制链接] |试试Instant~ |关注本帖
singledog2016 发表于 2016-2-24 09:58:25 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类General 硕士 全职@Snapchat - 内推 - 在线笔试  | Pass | fresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
given an array of words. output array of simple words.
compound word are made of multiple simple words.

chat ever snapchat snap salesperson per person sales son whatsoever what so
其中simple word是chat, ever, snap, per, sales, son, what, so. 一亩-三分-地,独家发布

我的做法是:感觉很leetcode word break很像。那题是问一个string能否break成字典的word. 如果string长度是s, 复杂度是O(s^2)用dp方法可做。 这题可以把每个单词看做是string. 这样如果不能break就是simple words.
但有一点很tricky. 因为把所有词加入字典,包含了自身。比如chat, 可以用chat本身去break.  我想到在检查每个单词是否能被break之前,把自身从字典set里面删掉。检查完之后再加进去,检查下一个单词。这样就可搞定。
复杂度是O(n s^2) n是总的单词数目,s是最长单词长度。

足够详细吧! 求加米啊!!

评分

3

查看全部评分

motn 发表于 2016-3-18 18:33:16 | 显示全部楼层
LZ好牛,这个方法不错
回复 支持 反对

使用道具 举报

fengyubo0352 发表于 2016-3-25 03:47:09 | 显示全部楼层
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!
. more info on 1point3acres. visit 1point3acres for more.
想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。
积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南
回复 支持 反对

使用道具 举报

fengyubo0352 发表于 2016-3-25 03:50:14 | 显示全部楼层
不需要每次删除和加回原set,因为每一次加进去都需要耗费多余时间。我做的方法是看一个词能被拆成几种组合。如果是1,那么就是自己;如果是大于1,那么说明这个词是一个compound; 如果小于1,那么说明这个词是空串,也是属于词根。这样对每个词过一次就行了,不需要反复添加和删除。
回复 支持 反对

使用道具 举报

 楼主| singledog2016 发表于 2016-3-25 03:52:58 | 显示全部楼层
adding and removing from hashset is O(1) no big deal
回复 支持 反对

使用道具 举报

fengyubo0352 发表于 2016-3-25 03:57:38 | 显示全部楼层
singledog2016 发表于 2016-3-25 03:52. From 1point 3acres bbs
adding and removing from hashset is O(1) no big deal

I don't know how Java implement set, but are you sure adding and removing from set in C++ is O(1)? how set is implemented in C++?
回复 支持 反对

使用道具 举报

 楼主| singledog2016 发表于 2016-3-25 04:02:19 | 显示全部楼层
Java HashSet is O(1), C++ should have hash table as well. unorder_map ?
some word has multiple ways of breaking. snapchat can break into 1. snapchat, or 2 snap, chat.  You have to check multiple possibilities.. visit 1point3acres for more.
However, without self word, you only need to check if it can break out out. Just a true or false choice. So it is Leetcode word break I.
.留学论坛-一亩-三分地
回复 支持 反对

使用道具 举报

fengyubo0352 发表于 2016-3-25 04:12:11 | 显示全部楼层
singledog2016 发表于 2016-3-25 04:02
Java HashSet is O(1), C++ should have hash table as well. unorder_map ?
some word has multiple way ...

Should be unordered_set.

Yes, for second point, I agree with you. Actually I tried this one in the beginning, but later I changed my idea since it is annoying to deal with delete and insert, so I change my mind. But you are right.
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

u-r-the-one 发表于 2016-3-26 09:47:39 | 显示全部楼层
LZ的OA过了吗?
回复 支持 反对

使用道具 举报

 楼主| singledog2016 发表于 2016-3-26 09:51:40 | 显示全部楼层
u-r-the-one 发表于 2016-3-26 09:47. Waral 博客有更多文章,
LZ的OA过了吗?

OA过了,但是最后跪了
回复 支持 反对

使用道具 举报

u-r-the-one 发表于 2016-3-26 09:54:21 | 显示全部楼层
singledog2016 发表于 2016-3-25 20:51
OA过了,但是最后跪了

能不能问一下是电面跪了还是onsite。。。有没有面经 snapchat练练手 lz肯定更有好的offer
回复 支持 反对

使用道具 举报

 楼主| singledog2016 发表于 2016-3-26 10:03:30 | 显示全部楼层
有点忙。下周若有空写一下。
回复 支持 反对

使用道具 举报

fantasiasango 发表于 2016-9-5 05:31:24 | 显示全部楼层
感谢楼主分享!
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-27 02:04

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表