05. 求最长回文子串

Posted baizhuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05. 求最长回文子串相关的知识,希望对你有一定的参考价值。

题目:

技术图片

提交01: 目标先实现功能

 1 class Solution 
 2     public String longestPalindrome(String s) 
 3        char[] ch = s.toCharArray();
 4         if(ch.length==0)
 5             return "";
 6         
 7         int left = 0;
 8         int right = 0;
 9         int index = 0;
10         int j =0;
11         int k=0;
12         for(int i=1;i<ch.length;i++)
13             while(index<i)
14                 for(j=index,k=0;j<=i-k;j++,k++)
15                     if(ch[j] != ch[i-k])
16                         break;
17                     
18                 
19                 if(j>=i-k)
20                     if(i-index>right-left) 
21                         left = index;
22                         right = i;
23                     
24                 
25                 index++;
26             
27            index = 0;
28         
29 
30         StringBuffer stringBuffer = new StringBuffer();
31         while(left<=right) 
32             stringBuffer.append(ch[left]);
33             left++;
34         
35         return stringBuffer.toString();
36     
37 

技术图片

很明显,耗时太严重,现在考虑如何优化??

提交02: 优化

以上是关于05. 求最长回文子串的主要内容,如果未能解决你的问题,请参考以下文章

求最长回文子串,O(n)复杂度

数据结构与算法 Manacher 算法求最长回文子串

回文子串解法大全

求给定字符串中最长回文子串

Leetcode_05最长回文子串

[Manacher]最长回文子串