如何有效地确定给定字符串中最长的单个字符回文?

jbr*_*aud 8 algorithm palindrome

给定一个长度为N的字符串[AZ],如何确定单个字符的最长回文?

我将用一个例子来说明这一点:

给定字符串:JOHNOLSON 在分析字符串时,我们发现我们有一个带有字符的回文O使得字符串看起来像.它的回文长度基本上看起来像7 .另外,请注意有一个回文,但它只有6个长度.JOHNOLSONOO--O--ON

另一个例子,给定字符串:ABCJOHNOLSON给出与上面相同的结果,其中O长度为7 的回文看起来像.O--O--O

但是,对于给定的字符串ABCJOHNOLSONDA,最长的单个字符回文长度为14,字符A看起来像.A------------A

其他简单的例子包括:

ABA- > (长度3)A-A

ABAXYZ- > (长度3)A-A

ABAXYZA- > (长度5),而不是长度7因为不是信件的回文.A---AA-A---AA

特别注意最后一个例子,因为它说明了问题的一个微妙的细微差别.

Jor*_*ley 5

你可以在线性时间内完成它,这里用代码示例描述.