bool Valid(char *s, int left, int right);
char * longestPalindrome(char * s){
int len = 0;
char *s_copy = s;
while(*s_copy != '\0')
{
len++;
s_copy++;
}
if(len <= 1) return s;
char *result = (char *)malloc(sizeof(char) * (len+1));
memset(result, 0, sizeof(char) * (len+1));
int i, j;
for(i = len; i>0; i--)
{
for(j = 0; j<=len-i; j++)
{
if(Valid(s, j, i+j-1))
{
memcpy(result, s+j, sizeof(char) * i);
return result;
}
}
}
return result;
}
bool Valid(char *s, int left, int right)
{
while(left < right)
{
if(s[left] == s[right])
{
left++;
right--;
}
else return false;
}
return true;
}
#5. 最长回文子串
最新推荐文章于 2024-08-29 19:37:03 发布