题目
给你一个字符串
s
,找到s
中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
注意
- 字符串结尾
str[l - i] = '\0';
代码
char* longestPalindrome(char* s) {
int max = 0;
char* str;
str = malloc(sizeof(char) * (1001));
for (int i = 0; i < strlen(s); i++) {
int j = strlen(s), k = i, t = 0, m,n = 1;
while (j >= i) {
if (*(s + k) == *(s + j)) {
if (k == j) {
k++;
j--;
t++;
} else {
k++;
j--;
t = t + 2;
}
} else {
k = i;
j = strlen(s) - n;
n++;
t = 0;
m = j;
}
}
if (max < t) {
max = t;
int l;
for (l = i; l <= m; l++) {
str[l - i] = s[l];
}
str[l - i] = '\0';
}
}
return str;
}