📣 VIP通行证夏日特惠 限时立减$68
回复: 45
跳转到指定楼层
上一主题 下一主题
收起左侧

g家电面

全局:

2016(7-9月) 码农类General 硕士 全职@google - Other - 技术电面  | | Other | 在职跳槽

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
判断字符串是否存在重
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
优化技巧

上一篇:Amazon OA2
下一篇:coursera oa1 9/11 开始的新题
推荐
hxtang 2016-10-4 04:25:17 | 只看该作者
全局:
liurudahai 发表于 2016-10-4 03:43
这个不对吧,应该还是O(n^3),因为他们没说对于输入字符串必须要从第一个字符开始就开始这个连续重复K次 ...

假设第n个字母跟第n-k相同就画一个x,那么
cdefababab
          xxxx
可以看到有4个连续的x,所以循环子串一共6个字母,循环3次
回复

使用道具 举报

推荐
fatalme 2016-9-14 06:18:10 | 只看该作者
全局:
Prefix tree可以 O(N^2)复杂度。
回复

使用道具 举报

推荐
jacky841102 2016-9-16 00:52:59 | 只看该作者
全局:
感觉可以用suffix array + LCP(Longest common prefix)

http://www.geeksforgeeks.org/suffix-array-set-1-introduction/

suffix array 是把长度为n的字串的n个suffix排列后的array

如banana 的 suffix array:
i    [i:]
2   a
3   ana
1   anana  
0   banana  
4   na   
2   nana

LCP 是记录suffix array中相邻suffix的最长共同prefix
https://en.wikipedia.org/wiki/LCP_array

i    [i:]         LCP
2   a             ---
3   ana          1
1   anana       3
0   banana     0
4   na            0
2   nana         2

注意
4   na           0
2   nana        2
会有重复k次的连续子字串话,LCP array 会出现以0或是--为首,长度为k的等差数列
如在banana中    na 和 nana,等差是2
如果是abcabcabc    abc, abcabc, abcabcabc会在suffix array中排在一起,且在LCP array中是以3为等差的数列--, 3, 6

建suffix array可达到O(nlogn),比较容易的方法是O(n(logn)^2)
建LCP array是O(n)
找长度为k的等差数列只需扫一遍LCP array, 是O(n)

总共是O(nlogn) 或 O(n(logn)^2)
回复

使用道具 举报

🔗
JeremyLi 2016-9-13 13:59:23 | 只看该作者
全局:
求问楼主这题有什么好做法吗?
回复

使用道具 举报

🔗
william_gong 2016-9-13 21:52:33 | 只看该作者
全局:
请问这题lz怎么做的呢?
回复

使用道具 举报

🔗
hyliu0000 2016-9-14 04:09:57 | 只看该作者
全局:
是不是就是LeetCode – Longest Substring Without Repeating Characters?

评分

参与人数 1大米 +3 收起 理由
hyliu0001 + 3 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
william_gong 2016-9-14 04:29:31 | 只看该作者
全局:
hyliu0000 发表于 2016-9-14 04:09
是不是就是LeetCode – Longest Substring Without Repeating Characters?

不一样的吧
回复

使用道具 举报

🔗
hxtang 2016-9-14 06:24:57 | 只看该作者
全局:
这个是Leetcode 395吗?
回复

使用道具 举报

🔗
aangel 2016-9-14 06:53:35 | 只看该作者
全局:
hxtang 发表于 2016-9-14 06:24
这个是Leetcode 395吗?

不一样的。。重复K次以上的子串
回复

使用道具 举报

🔗
aangel 2016-9-14 06:55:39 | 只看该作者
全局:


一个字符串总共有N^2的子串,用一个HashMap记录一下HashMap<String,Integer>
然后看哪个string超过K了?
回复

使用道具 举报

🔗
hxtang 2016-9-14 09:05:09 | 只看该作者
全局:
brute-force的可以遍历所有可能的子串首字符s和循环节长度l,复杂度是O(n^3)

优化的时候对每个l,似乎可以利用类似KMP的idea把检查所有可能的s合并成一个O(n)时间的sliding window。这样总体复杂度可以改进到O(n2).
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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