char * longestPalindrome(char * s){
int i,j,left=0,right=0,max=1,L,il,jr,k;
char * ch;
L=strlen(s); //两端比较,向中间靠拢
for(i=0;i<L;i++)
{
for(j=L-1;i<j;j--)
{
il=i;
jr=j;
while((il<jr)&&(s[il]==s[jr])){il++;jr--;}
if((il>=jr)&&((j-i+1)>max))
{
left=i;
right=j;
max=j-i+1;
}
if(il>=jr) break;
}
}
ch=(char*)malloc((max+1)*sizeof(char));
for(k=0;k<max;k++)
{
ch[k]=s[left+k];
}
ch[max]=NULL;
return ch;
}
力扣:5. 最长回文子串
最新推荐文章于 2024-09-14 18:52:56 发布