一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 688|回复: 1
收起左侧

[算法题] 问一道据说是Amazon OA真题的题

[复制链接] |试试Instant~ |关注本帖
honiess 发表于 2016-5-13 04:16:08 | 显示全部楼层 |阅读模式

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

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

x
九章的推送里看到的题,正好最近在做A家OA,就拿出来跟大家讨论一下。


Most Often String
在一个长度为N的string中,找到出现次数最多的substring出现的次数。 substring限制如下:
1. 长度在K和L之间, 2 <= k < L <= 26
2. substring当中包含的unique的字符个数不超过M个 2 <= M <= 26

Test case
Input:
k = 2
L = 4
M = 26
ababab

Output:
3

Explain:
for size 2 substring, ab repeats 3 times
for size 3 substring, aba repeats 2 times and bab repeats twice
for size 4 substring, no substring repeats


关于这道题我有一个疑问, 大概就是比如一个长度为3的字串重复了4次的话,那么这个字串的两个长度为2的字串不是一定也至少会重复四次吗?
就比如 abcabcabcabc 这样 ab和bc不是都重复了4次咩?
所以感觉只需要考虑最短的串可能重复的最大次数就可以了,不知道这样想对不对……



stellari 发表于 2016-5-17 07:02:36 | 显示全部楼层
按这个问法,我觉得确实如你所说。因为最常见子串的任何前缀出现的次数一定不会低于该子串本身,并且前缀中的unique字符数一定少于整个子串,所以如果最常见子串满足M的约束,它的前缀一定也满足M的约束。因此如果某子串是最常见子串,那么它的前缀一定也是。而反之不然。所以,确实只要找到长度为K时满足M约束的最常见子串既可以了。这个逻辑我认为是通的。

不过这样的话,这题给出L不就没有意义了么?如果是Amazon的高频题,出题人应该能意识到这一点才对。我觉得可能原题中还有其他的限制条件,或者问法不同。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-11 19:06

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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