给定一个字符串,查找该字符串中的最大回文子串。
如: "a" 最大回文子串为 "a" 大小为1
"aa" 最大回文子串为"aa" 大小为2
"aaa" 最大回文子串为"aaa" 大小为3
"aba" 最大回文子串为"aba" 大小为3
"character" 最大回文子串为"carac" 大小为5
该问题是一个动态规划问题。该问题的最优解,具有最优子结构性质,即该最优解可由子问题的最优解组合而成。
假定对于一个从i到j的字符串s[i,j],具有最优解 (a1,a2,...an)。如果去除a1, an,则最优子结构(a2,....an-1)是 s[i+1, j-1]的最优解。
下面要多考虑了, 回文串奇偶的问题:
下面只记录了最大的回文子串的大小,如果需要输出回文子串,需要增加一个备完数组记录该串。
public static void main(String[] args) throws Exception {
Scanner in = new Scanner(System.in);
String str = null;
while((str=in.nextLine())!=null){
int [][] tt = new int[str.length()+1][str.length()+1];
char [] s = str.toCharArray();
for(int i &