依次找到回文

时间:2018-07-27 09:22:22

标签: palindrome

我希望任何人都可以回答我的问题。 我有n组字符串的序列(长度为k的简并字符串),这样:

this is my sequence

我想以可能的中心在此顺序中找到最大回文。 我要使用的算法是: 在算法MaxPalCenters中,我们考虑ˆ S的所有可能的中心c。在c在两个简并字母之间的情况下,我们只需尝试通过应用GDSC向左和向右扩展。在c位于简并字母内的情况下,我们直观地将字母垂直拆分为两个字母,然后尝试通过应用GDSC向左和向右扩展。在此过程的每个扩展步骤中,我们维护两个GD字符串ˆL(中心左侧)和ˆR(中心右侧),以使它们的总宽度相同。为了进行比较,我们考虑ˆL的倒数(类似于算法MaxPalPairs)。如果c出现在简并字母内以确保我们不识别不存在的回文,对于简并字母的所有j个拆分字符串,我们检查  ˆLR [0] [j] [0。 。 。 k − 1] = ˆR [0] [j] [0。 。 。 k − 1] 其中ˆLR = rev(ˆL),k = min(w(LR [0]),w(ˆR [0]))。如果找不到匹配项,我们将移至下一个中心。否则,当找到匹配项时,我们将使用拆分的简并字母的其余部分(如果其长度大于k)以及下一个简并字母来更新rev(ˆL)和ˆR。应用算法GDSC比较rev(revL)和ˆR。经过肯定的比较后,我们通过添加当前扩展名的简并字母来覆盖ˆL和ˆR 直到w(ˆL)= w(ˆR)(或直到到达字符串的末尾)为止。只要GDSC返回正比较,即直到找到以c为中心的最大GD回文,该过程就会重复。

我的问题是关于这部分,如果中心在字母内,然后垂直拆分字母...

请大家为我做一个榜样吗?当中心位于字母内部时,我尝试跟踪此算法,但我不明白它的工作原理。

我希望你能理解我的问题,因为我的英语不太好。

0 个答案:

没有答案