题目如下:
因为博主也还不太会这道题,所以就先把会的一部分写出来,接下来还会继续更。
思路如下:首先字符串长度我们肯定要考虑奇数和偶数两种情况,首先奇数的情况:
假设我们有“aabaa”这样一个字符串,并且我们需要知道回文串的长度,并且这个长度会不断变化(因为我们接下来会对每一个字符都进行遍历),我们首先要做的就是对其中每个字符进行遍历,先从他的左右两边查看是否回文,那么就从b来分析,设一个循环i=0,嵌套循环j=0,即先查看i+j是否等于i-j,如果相等,继续扩大范围继续查看是否相等,在这里我们需要注意回文子串长度的变化:除了探查到的边界j,还需要加上最中间的字符即+1,就比如我们探查到i+j,就break了,此时这个字符串的长度应为2j+1,可以试试自己拿草稿纸比划一下。大概是这样:
这题好难,慢慢看。