码迷,mamicode.com
首页 > 编程语言 > 详细

5. Longest Palindromic Substring java solutions

时间:2016-06-29 13:00:29      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

 1 public class Solution {
 2     public String longestPalindrome(String s) {
 3         if(s == null || s.length() <= 1) return s;
 4         String ans = s.substring(0,1);
 5         for(int i = 0; i < s.length(); i++){
 6             String tmp = findPalindrome(s,i,i);//回文为奇数的情况
 7             if(tmp.length() > ans.length()) ans = tmp;
 8             
 9             tmp = findPalindrome(s,i,i+1);// 回文为偶数的情况
10             if(tmp.length() > ans.length()) ans = tmp;
11         }
12         return ans;
13     }
14     
15     public String findPalindrome(String str, int s, int e){
16         while(s >=0 && e < str.length() && str.charAt(s) == str.charAt(e)){
17             s--; e++;
18         }
19         return str.substring(++s,e);
20     }
21 }

时间复杂度O(N*(N+N+1))

本题也可以使用DP做法:

参考DP:http://blog.csdn.net/soszou/article/details/37312317

5. Longest Palindromic Substring java solutions

标签:

原文地址:http://www.cnblogs.com/guoguolan/p/5626355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!