char* longestPalindrome(char* s) {
int sSize = strlen(s);
int maxBegan = 0;
int maxLenth = 0, lenth = 0;
for (int i = 0; i < sSize; i++)
{
int j = 1;
int k = 0;
while (s[i - j] == s[i + j] && j <= i && i + j < sSize)
{
k++;
j++;
}
lenth = 2 * k + 1;
if (lenth > maxLenth)
{
maxLenth = lenth;
maxBegan = i - k;
}
j = 1;
k = 0;
if (s[i] != s[i+1])
{
continue;
}
while (s[i - j] == s[i + j + 1] && j <= i && i + j + 1 < sSize)
{
k++;
j++;
}
lenth = 2 * k + 2;
if (lenth > maxLenth)
{
maxLenth = lenth;
maxBegan = i - k;
}
}
char *arr = (char *)malloc(sizeof(char)*1001);
strncpy(arr, &s[maxBegan], maxLenth);
return arr;
}
无语了编译器,输出和期望一样居然判错。。。