您的位置:首页 > 编程语言 > Java开发

LeetCode:Longest Palindromic Substring

2014-04-16 16:43 471 查看
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.

最直接的想法, 对每一个子串进行判定是否为回文,并且记录回文的最大长度,最后返回最长的回文。

public class Solution {
boolean isPalindromic(String s)
{
int i=0,len=s.length();
while(i<len/2)
{
if(s.charAt(i)!=s.charAt(len-i-1))return false;
i++;
}

return true;
}
public String longestPalindrome(String s) {
int start=0,len=s.length(),end=s.length();
int count=0;
if(len==1)return s;
String res="";
while(start+count<=len)
{
String subs=s.substring(start,end);
if(isPalindromic(subs))
{
if(count<end-start)
{
count=end-start;
res=subs;
}
}
end--;
if(end==start){start=start+1;end=len;}
}
return res;
}
}之后的想法也比较简单,假设A[i]为回文中间的那个字符(如果A[i]==A[i+1]还需要以A[i],A[i+1]共同为中间字符)之后两边延伸直到不能延伸为止,记录此时回文的长度,如果比已经记录的最大值大,则更新,最后返回结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息