字符串中可能的回文子串的最大可能数量的数学证明?

Mathematical proof of maximum possible number of palindromic substrings possible in a string?

我需要证明在一个有n个字符的字符串中,至多n个不同的非空回文子串是可能的。我可以理解这是因为每个字符本身都可以是回文,因此子字符串的最大可能数量将等于字符串中的字符数量。但是,我似乎无法以数学证明的形式表达这一点。我该怎么做?

给定 xc,其中 x 是任何字符串,c 是任何字符:

xc 的所有子字符串,但不在 x 中的必须是 后缀 xc。如果它们是回文,则它们的形式为 cyc,其中 cyx 的后缀y 是回文或空。

假设有两个这样的新回文后缀。由于它们是同一字符串的不同后缀,因此它们的长度必须不同,因此我们有 cyczc,其中 zycz 均为回文或空。

如果ycz是回文,有几种情况需要考虑。

  1. 如果 len(y) = len(z),则意味着 y = z 并且 czc,因此,已经x的子串——矛盾。

  2. 如果z更短,那么我们可以再次划分为czrcwczc,但是 z 是回文所以 zr = z 和我们有同样的矛盾

  3. 如果z比较长,那么我们可以划分成cycwcyrc, wcyr = z, 那是一个回文, z = ycw czc 已经出现在 x.

    中的矛盾再次出现

所以...将单个字符添加到字符串中最多可以引入一个 个新的回文子串。因此,任何字符串中此类子字符串的总数不能超过字符串的长度。