public class Solution {
public String longestPalindrome(String s) {
char []c=s.toCharArray();
int count=0; //用来记录回文串的最大长度
int r=0; //记录最大回文串开始的下标
int p,q;
int i=0,j=s.length()-1;
if(s.length()==0) return null;
while(s.length()-i>count)
{
while(c[j]!=c[i]) j--; //从后向前找相同的下标
if(j==i) {i++;j=s.length()-1; continue;}
else{
p=j;
q=i;
while(p>=q && c[p]==c[q])
{
p--;
q++;
}
if(p<q)
{
int count1=j-i+1;
if(count1>count)
{
count=count1;
r=i;
}
i++; //找到了一个回文串,i向后加1,再重新从后开始向前找回文串
j=s.length()-1;
}
else {
j--;
}
}
}
if(count!=0)
return s.substring(r,r+count);
else
return s.substring(0,1);
}
}
LeetCode 5. Longest Palindromic Substring
最新推荐文章于 2022-10-24 21:03:12 发布