给定一个长度为N的字符串,包含字符[A-Z],如何确定每个字符的最长回文子串?
我将用一个例子来说明:
给定字符串:
另一个例子, 给定字符串:
然而,在给定字符串
其他简单的例子包括:
特别注意最后一个例子,因为它展示了问题的微妙之处。
我将用一个例子来说明:
给定字符串:
JOHNOLSON
在分析字符串时,我们发现有一个以字符O
为中心的回文子串,使得字符串看起来像J
O
HN
O
LS
O
N
。 O
的回文子串长度为7,实际上看起来像O
--
O
--
O
。此外,注意到有一个以N
为中心的回文子串,但它只有长度6。另一个例子, 给定字符串:
ABCJOHNOLSON
与上面的结果相同,O
的回文子串长度为7,看起来像O
--
O
--
O
。然而,在给定字符串
ABCJOHNOLSONDA
中,最长的单个字符回文子串长度为14,字符为A
,看起来像A
------------
A
。其他简单的例子包括:
ABA
--> A
-
A
(长度3)
ABAXYZ
--> A
-
A
(长度3)
ABAXYZA
--> A
---
A
(长度5),而不是长度7,因为A
-
A
---
A
不是字母A
的回文子串。特别注意最后一个例子,因为它展示了问题的微妙之处。
ABCDAEEALMNA
,当考虑A
时,它看起来像A---A--A---A
,这是一个大小为12的回文(当您忽略其余字符的唯一性时),但是考虑字符串ABCDAEEALMNOA
,整个字符串不再是回文,而是一个更小的子字符串成为最长回文,即长度为5的末尾的A---A
。 - jbranchaud