感觉不如简单题里的最大回文子串
#include <stdio.h>
#include <string.h>
int lenren(char str[], int mid, int len) {
int count1 = 1, count2 = 0;
int left1 = mid - 1, right1 = mid + 1;
while (left1 >= 0 && right1 < len) {
if (str[left1] == str[right1]) {
count1 += 2;
left1--;
right1++;
} else
break;
}
int left2 = mid, right2 = mid + 1;
while (left2 >= 0 && right2 < len) {
if (str[left2] == str[right2]) {
count2 += 2;
left2--;
right2++;
} else
break;
}
return count1 > count2 ? count1 : count2;
}
int main() {
char str[2500] = {0};
while (~scanf("%s", str)) {
int len = strlen(str);
int max = 0, i = 0;
int tem = 0;
for (i = 0; i < len - 1; i++) {
tem = lenren(str, i, len);
max = max > tem ? max : tem;
}
printf("%d", max);
}
}



京公网安备 11010502036488号