题解 | 最长回文子串
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
#include <stdio.h>
#include <string.h>
#define max(a,b)(a>b?a:b)
int main() {
char s[800]={0};
char c;
int i=0;
//加入不存在的字符来统一奇偶个数的回文字串
while ((c=getchar())!='\n') {
s[2*i]='0';
s[2*i+1]=c;
i++;
}
s[2*i]='0';//前后都加入不存在的字符以便完整边界
int count=0;
for(int j=0;j<=strlen(s);j++){
for (int k=1;(j-k)>=0&&(j+k)<=strlen(s); k++) {
if (s[j-k]==s[j+k]) {
count=max(count,k);//判断极限 偶:0X0X0 奇: 0x0x0x0 相较中心都为k半径
}
else break;
}
}
printf("%d",count);
return 0;
}
