avatar
人家等着你来上床嘛# Joke - 肚皮舞运动
F*r
1
一个字符串,要求返回重复次数最多且最长的子字符串(假设源字符串中最长重复次数
最多的子字符串只有一个)。
例如 “abcabcdfabcdf”要求返回“abcdf”. 因为“
abcdf”重复次数最多且最长。
avatar
C*g
2
avatar
h*3
3
这题题目不是很清楚啊。
你的例子里面, abc 重复了3次, abcdf 重复2次,难道不应该返回abc吗?



【在 F**********r 的大作中提到】
: 一个字符串,要求返回重复次数最多且最长的子字符串(假设源字符串中最长重复次数
: 最多的子字符串只有一个)。
: 例如 “abcabcdfabcdf”要求返回“abcdf”. 因为“
: abcdf”重复次数最多且最长。

avatar
x*u
4
老了
avatar
g*s
5
subsequence是经典的dynamic programming的问题
avatar
z*o
6
这个是标准的Suffix Array的 nLogn 吧
avatar
z*o
7
先构造后缀:
abcabcdfabcdf
bcabcdfabcdf
cabcdfabcdf
abcdfabcdf
bcdfabcdf
cdfabcdf
dfabcdf
fabcdf
abcdf
bcdf
cdf
df
f
之后排序,并且计算相邻string的longest common prefix长度:
0 abcabcdfabcdf
3 abcdf
5 abcdfabcdf
0 bcabcdfabcdf
2 bcdf
4 bcdfabcdf
0 cabcdfabcdf
1 cdf
3 cdfabcdf
0 df
2 dfabcdf
0 f
1 fabcdf
然后要最长的就是那个 5, 最多的就是连续正数的最大长度+1 = 3
整个计算过程是 nLogn的
avatar
g*s
8
汗,没看清楚,以为是subsequence, substring就是suffix tree了
avatar
F*r
9
那么这些后缀怎么放比较好呢?就是简单的创造数组的话,直接就O(n^2)了?

【在 z****o 的大作中提到】
: 先构造后缀:
: abcabcdfabcdf
: bcabcdfabcdf
: cabcdfabcdf
: abcdfabcdf
: bcdfabcdf
: cdfabcdf
: dfabcdf
: fabcdf
: abcdf

avatar
b*8
10
后缀树的确很好,可以强行记住几个结论。但是实际面试中,会问如何构造后缀树吗?
这个就麻烦了。

【在 z****o 的大作中提到】
: 先构造后缀:
: abcabcdfabcdf
: bcabcdfabcdf
: cabcdfabcdf
: abcdfabcdf
: bcdfabcdf
: cdfabcdf
: dfabcdf
: fabcdf
: abcdf

avatar
j*x
11
后缀树这种给人写要写一个星期的东西不要总是挂在心上
纯粹是应付面试,么啥意思。。。
avatar
A*i
12
一个trie+遍历次数统计就可以了
avatar
h*c
13
如果重复的话,最长子串最长为二分之一,只需比较两个字符,就可以排除二重复,
同理排除三重复,四重复,
后面还没想好。
avatar
h*c
14
就排除了最长子串是长度二分之一的可能性,
then save you a lot fo trouble.

【在 h**********c 的大作中提到】
: 如果重复的话,最长子串最长为二分之一,只需比较两个字符,就可以排除二重复,
: 同理排除三重复,四重复,
: 后面还没想好。

avatar
m*q
15
另开一个指针数组,指向原数组中对应的元素,然后对指针数组排序,
其实只是交换指针,空间O(n)。见《编程珠玑》

【在 F**********r 的大作中提到】
: 那么这些后缀怎么放比较好呢?就是简单的创造数组的话,直接就O(n^2)了?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。