7-64 最长对称子串(25 分)
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?
,最长对称子串为s PAT&TAP s
,于是你应该输出11。
输入格式:
输入在一行中给出长度不超过1000的非空字符串。
输出格式:
在一行中输出最长对称子串的长度。
输入样例:
Is PAT&TAP symmetric?
输出样例:
11
#include <stdio.h>
#include <string.h>
#define MAXS 1001
int main(void) {
char input[MAXS], result[MAXS];
int str_length, i, j, k, max_length = 0;
gets(input);
str_length = strlen(input);
for (i = 1; i <= str_length; i++) { //对所有可能的长度进行测试
for (j = 0; j < str_length + 1 - i; j++) {
for (k = 0; k < i / 2; k++) {
if (input[j + k] != input[j + i - k - 1]) {
break;
}
}
if (k < i / 2) {
continue;
}
else {
max_length = i;
}
}
}
printf("%d\n", max_length);
return 0;
}