题目描述
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。
回文串是指正读和反读都一样的字符串。
解题思路及实现
方法一:最长公共子串
反转S,变成T,S与T的最长公共子串Y就是最长回文子串。
当S="abacdfgdcaba"时,T="abacdgfdcaba",Y="abacd",很明显Y不是回文串。
该如何解决?
每当我们找到一个最长的公共子串的时候,要检查其是否是回文串。
方法二:暴力解决(超时)
枚举子字符串所有可能的开始和结束位置,并验证其是否是回文串,找到里面最长的;
时间和空间复杂度
时间复杂度为O(n*n*n),n为字符串的长度,会有(2