任何人都可以帮我解决这个问题:。这不是家庭作业,我正在为我的技术面试做准备。
给定一系列N个字符串,找到一组大小为3的重复字符串 例如ababadefb
答案 0 :(得分:1)
我认为我们可能会因为不了解完整的问题而受苦。我将引导您访问我的一位朋友的博客文章talks about his interview with Microsoft。
答案 1 :(得分:1)
一个简单的解决方案是从字符串构造Suffix array,对其进行排序并计算当前后缀与前一个后缀之间的最长公共前缀。现在所有长度为3或更长的LCP都会给你答案(在这种情况下为aba)。
ababadefb 0
abadefb 3
adefb 1
b 0
babadefb 1
badefb 2
defb 0
efb 0
fb 0
作为替代解决方案,您可以从所有后缀构建Radix tree,然后获取所有标记为长度为3或更长的字符串的边。