首先需要知道KMP,其次假设原串是s
造一个新串 s#s' 其中s'是s的完全反过来
然后我们只需要知道新串开头最长的回文串是什么,问题就迎刃而解了。
而想要知道这个,就利用KMP中的next数组即可,且只看最后一位。
比如最后一位next值为i (我们假定这个值表示0~i和 n-i~n)之间是相同的
假设n-i ~n 为 a0a1...ai
根据构造知 0~i为 aiai-1...a1a0
从而 a0a1...ai= aiai-1...a1a0 也就是说 next值+1=回文串的长度!!从而简单了