Algorithm 求给定单词的双子词的算法

Algorithm 求给定单词的双子词的算法,algorithm,Algorithm,给定单词V的子单词U是双精度的,当它的形式为U=ww时,例如“abab”是“acdababx”的双精度子单词,但“cdab”不是 我需要一个算法来检查给定的单词V的子单词U是否是double。可以在线性时间内对V进行预处理,但任何特定U的答案都应该具有恒定的时间复杂度,因为每个V都会有许多U。U作为一个区间给出,例如,如果V=“acdababx”, 区间[3..6]对应于子词“daba” 输入和输出示例: V=阿巴巴卡 U= [14]——>否 [38]-->是的 [5 8]-->否 [8 9]

给定单词V的子单词U是双精度的,当它的形式为U=ww时,例如“abab”是“acdababx”的双精度子单词,但“cdab”不是

我需要一个算法来检查给定的单词V的子单词U是否是double。可以在线性时间内对V进行预处理,但任何特定U的答案都应该具有恒定的时间复杂度,因为每个V都会有许多U。U作为一个区间给出,例如,如果V=“acdababx”, 区间[3..6]对应于子词“daba”

输入和输出示例:

V=阿巴巴卡

U=

  • [14]——>否
  • [38]-->是的
  • [5 8]-->否
  • [8 9]-->是的
  • [1 10]-->否

这不是当前任何竞赛的问题。

这里有一个算法,它声称在输入字的后缀树(可以在O(n)时间内构造)中标记所有双字(或文献中常见的串联重复)的端点。当然,由于我不能完全访问这篇文章,我不确定它是否能满足O(1)查询时间

该文件是:


希望有帮助。

所以
u->ww
保证只有
w
两次?或者更有趣。。。如何在一个字符串中找到所有的双个子字符串?@Argote:通过写u=ww,我的意思是u是附加到它自身的某个单词@belisarius:在一个字符串中查找所有的双个子字符串可以很容易地在O(n^2)时间内完成,但是这里太慢了,因为n可能很大。是的,我理解了,我的意思是,为了使它有效,重复它的次数是2次还是2次或更多。