1. 问题描述
回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的;简而言之,回文串是左右对称的。所谓最长回文子串问题,是指对于一个给定的母串
abcdedcb
从所有的为回文串的子串a, ded, cdedc, bcdecdb中;找出最长的那一个bcdecdb。但是该如何判断子串是否回文然后找出最长者呢?正好Leetcode也有一个5. longest-palindromic-substring问题,可以用来做代码测试。
2. 求解
2016.12.28更新
将原来的C代码替换为Go 1.7,修复了评论中所指出的动态规划bug。
穷举法
最容易想到的是穷举法,穷举所有子串,找出是回文串的子串,统计出最长的那一个。